从 oracle 修剪字符串

Trimming string from oracle

我正在尝试比较两个文件名列表并提供差异列表,但效果很差。我已经阅读并尝试了众多可用示例。 在将其作为重复项或已回答项关闭之前,请进一步阅读。

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

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

这个 returns (),而不是预期的文件名。 我尝试过对字符串进行切片,我尝试过使用 awk,但是元字符让这变得困难。
如果有人可以提供指导,我将不胜感激。 我在本该花几分钟的事情上花了几个小时。

谢谢你,艾伦

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

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

但我怀疑 return 数据实际上是一个元组而不是字符串

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

这会让你说

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