我使用python ftplib將二進制文件上傳到遠程ftp服務器,但它總是傳輸比實際大小更小的文件。 ps:本地環境是windows,遠程服務器是linux。 我使用:python ftplib上傳二進制文件
'ftp.storbinary('STOR %s' % filename,open(filename,'rb'))'
我認爲Python的API閱讀()不能正常工作,它承認一些特殊的字符作爲EOF這實際上不是。
如何上傳二進制文件而不丟失字節?之前我明白why.First
我使用python ftplib將二進制文件上傳到遠程ftp服務器,但它總是傳輸比實際大小更小的文件。 ps:本地環境是windows,遠程服務器是linux。 我使用:python ftplib上傳二進制文件
'ftp.storbinary('STOR %s' % filename,open(filename,'rb'))'
我認爲Python的API閱讀()不能正常工作,它承認一些特殊的字符作爲EOF這實際上不是。
如何上傳二進制文件而不丟失字節?之前我明白why.First
多個硬盤測試已經進行了,這是不是在python.Because一個bug被轉移尚未從內存刷新到磁盤上的文件,對於這個:
「F .retrbinary('RETR'+ filename,filehandler.write,bufsize)'
這樣做後,文件處理程序沒有明確關閉,retrbinary沒有關閉它,因此立即存儲它將丟失一些在內存中的字節。 因此,如果我們將其存儲,這樣以後直接關閉該文件處理程序:
'f.retrbinary(' RETR '+文件名,filehandler.write,BUFSIZE)' 'filehandler.close()' 然後我們得到所有字節,更詳細看看'http://blog.csdn.net/hongchangfirst'
更詳細的答案會有幫助!您提供的鏈接我無法理解,因爲我無法閱讀中文/普通話/任何文本。 – tector
嘿,我想描述我的解決方案是什麼,因爲接受的答案沒有解決我的問題,但正在將我移到右側方向: 我用完了想法,無法投入更多時間。所以我把我的python腳本分成兩個腳本:第一個腳本生成文件,第二個腳本只做ftp上傳。現在它的工作原理 - 但我知道它不能解決問題的根源...... – tector
我做了一些稍微不同的方法:寫入文件的一種方法,以及哪個是f.retrbinary()的回調函數。 – RdB