2016-09-15 69 views
0

我試圖比較兩個不同的文件名列表,並提供差異列表。我已經閱讀並嘗試了大量的例子。 在將其作爲重複項目或已答覆關閉之前,請進一步閱讀。來自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的例子清除了這個謎團。我有一個例子工作,並逐行處理。感謝您的幫助。 –

回答

0

所以首先。

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

但我懷疑,返回的數據實際上是一個元組,而不是一個字符串

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

,這將使你說

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