我很难尝试比较两个文件名列表并提供差异列表。我已经阅读并尝试了许多可用的例子。 在您将其作为复制或已回复之前关闭之前,请进一步阅读。
在python中,我正在通过ftp进行调用以获取文件列表。这会按预期返回一个数组。接下来,我正在调用Oracle来检索文件名列表。
这将返回一个文件名数组,但cx_oracle模块将它们返回为('filename',)
。当我进行比较时,它将文件名与('filename',)
进行比较并失败。我需要在比较之前删除单引号,括号和逗号。但我没有运气。
我试图使用切片将这些额外的字符从字符串中删除,但这是失败的。
for file from resultset:
print file
print file[2:10]
这将返回()
,而不是预期的文件名。
我试过切片,我试图使用awk,但元字符使这很难
如果有人能提供指导,我将不胜感激。
我花了几个小时做一些应该花费几分钟的事情。
谢谢Allan
答案 0 :(得分:0)
首先,如果您想要删除字符串两边的字符,可以使用lstrp
和rstrip
。
>>> "('filename')".lstrip("('")
'filename')'
>>> "('filename')".rstrip("')")
"('filename"
但我怀疑返回数据实际上是元组而不是字符串
>>> ('filename',)
('filename',)
>>> type(('filename',))
<class 'tuple'>
>>> ('filename',)[2:20]
()
这将允许你说
('filename',)[0]
'filename'