来自oracle的修剪字符串

问题描述:

我试图比较两个不同的文件名列表,并提供差异列表。我已经阅读并尝试了大量的例子。 在将其作为重复项目或已答复关闭之前,请进一步阅读。来自oracle的修剪字符串

在python中,我正在通过ftp进行调用以获取文件列表。如预期的那样返回一个数组。接下来,我打电话给Oracle检索文件名列表。 这将返回一个文件名数组,但cx_oracle模块将它们返回为('filename',)。当我进行比较时,它将比较文件名与('filename',)并失败。在比较之前,我需要删除单引号,括号和逗号。但我没有运气。 我试图用切片修剪掉字符串中的这些额外字符,但这是失败的。

for file from resultset: 
    print file 
    print file[2:10] 

这返回(),而不是如预期的文件名。 我试图切片的字符串,我试图使用awk,但元字符使这很难。
如果有人能提供指导,我将不胜感激。 我花了几个小时应该花费几分钟。

,如果你想从一个字符串的两边可以使用lstrprstrip删除字符谢谢你,艾伦

+0

你能运行'型()'上'('filename',)'输出。我怀疑它是一个元组。 – AlexLordThorsen

+0

你从'打印文件'得到了什么结果? –

+0

使用类型,它是一个元组。 AlexLordThorsen的例子清除了这个谜团。我有一个例子工作,并逐行处理。感谢您的帮助。 –

所以首先。

>>> "('filename')".lstrip("('") 
'filename')' 
>>> "('filename')".rstrip("')") 
"('filename" 

但我怀疑,返回的数据实际上是一个元组,而不是一个字符串

>>> ('filename',) 
('filename',) 
>>> type(('filename',)) 
<class 'tuple'> 
>>> ('filename',)[2:20] 
() 

,这将使你说

('filename',)[0] 
'filename'