2013-01-15 50 views
0

當我嘗試'獲取'我的遠程文件時,我得到以下結果。我可以打印,我知道這些文件在那裏。我是否需要將文件構建到列表中?Python TypeError無法連接str和'xxxxx'對象

file_list_attr = sftp.listdir_attr() 
for pfile in file_list_attr: 
    if DT.datetime.fromtimestamp(pfile.st_mtime) > yesterday: 
     # print pfile 
     localfile = path + "\\" + pfile 
     sftp.get(pfile,localfile) 



Traceback (most recent call last): 
    File "C:\Documents and Settings\tyoffe\Desktop\FTP", line 41, in <module> 
localfile = path + "\\" + pfile 
TypeError: cannot concatenate 'str' and 'SFTPAttributes' objects 
+0

這個問題基本上是相同的,因爲這http://stackoverflow.com/questions/3532873/python-cannot-concatenate-str並且長對象,所以你可能會發現閱讀答案也是有用的。 –

回答

0

的關鍵是在最後一行:

TypeError: cannot concatenate 'str' and 'SFTPAttributes' objects 

的錯誤是告訴您SFTPAttributes對象不是一個字符串,而該字符串只能與字符串連接在一起。我不知道如何強制轉換SFTPAttributes爲一個字符串,您可以嘗試是:

str(pfile) 

或類似pfile.tostring()

什麼工作最好通常將取決於物體的細節本身。

+0

這也沒有工作。看起來我必須在paramiko –

+0

中深入一點,當你嘗試str(pfile)方法時發生了什麼? –

1

您需要使用.filename屬性,而不是見SFTPAttributes documentation

file_list_attr = sftp.listdir_attr() 
for pfile in file_list_attr: 
    if DT.datetime.fromtimestamp(pfile.st_mtime) > yesterday: 
     # print pfile 
     localfile = path + "\\" + pfile.filename 
     sftp.get(pfile,localfile) 
+0

啊......那麼在這種情況下,我會刪除我的評論。似乎我有一個休息日......也許是時候花一點時間試圖讓我的其他代碼編譯:) – mgilson

相關問題