来自oracle的修剪字符串
问题描述:
我试图比较两个不同的文件名列表,并提供差异列表。我已经阅读并尝试了大量的例子。 在将其作为重复项目或已答复关闭之前,请进一步阅读。来自oracle的修剪字符串
在python中,我正在通过ftp进行调用以获取文件列表。如预期的那样返回一个数组。接下来,我打电话给Oracle检索文件名列表。 这将返回一个文件名数组,但cx_oracle模块将它们返回为('filename',)
。当我进行比较时,它将比较文件名与('filename',)
并失败。在比较之前,我需要删除单引号,括号和逗号。但我没有运气。 我试图用切片修剪掉字符串中的这些额外字符,但这是失败的。
for file from resultset:
print file
print file[2:10]
这返回()
,而不是如预期的文件名。 我试图切片的字符串,我试图使用awk,但元字符使这很难。
如果有人能提供指导,我将不胜感激。 我花了几个小时应该花费几分钟。
,如果你想从一个字符串的两边可以使用lstrp
和rstrip
删除字符谢谢你,艾伦
答
所以首先。
>>> "('filename')".lstrip("('")
'filename')'
>>> "('filename')".rstrip("')")
"('filename"
但我怀疑,返回的数据实际上是一个元组,而不是一个字符串
>>> ('filename',)
('filename',)
>>> type(('filename',))
<class 'tuple'>
>>> ('filename',)[2:20]
()
,这将使你说
('filename',)[0]
'filename'
你能运行'型()'上'('filename',)'输出。我怀疑它是一个元组。 – AlexLordThorsen
你从'打印文件'得到了什么结果? –
使用类型,它是一个元组。 AlexLordThorsen的例子清除了这个谜团。我有一个例子工作,并逐行处理。感谢您的帮助。 –