从oracle

时间:2016-09-15 23:09:18

标签: python cx-oracle

我很难尝试比较两个文件名列表并提供差异列表。我已经阅读并尝试了许多可用的例子。 在您将其作为复制或已回复之前关闭之前,请进一步阅读。

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

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

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

谢谢Allan

1 个答案:

答案 0 :(得分:0)

首先,如果您想要删除字符串两边的字符,可以使用lstrprstrip

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

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

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

这将允许你说

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