我使用os.walk()
方法在文件夾中爬網。在其中一個文件夾中,有大量文件,其中大約100,000個文件。這些文件看起來像:p_123_456.zip
。但它們被讀作p123456.zip
。事實上,當我打開Windows資源管理器瀏覽文件夾時,前幾秒鐘這些文件看起來像p123456.zip
,但是然後將其外觀更改爲p_123_456.zip
。這是一個奇怪的場景。在python3中使用os.walk時讀取的文件不正確
現在,我不能使用time.sleep()
,因爲所有文件夾和文件都被讀入循環行中的python變量。下面是代碼片段:
for root, dirs, files in os.walk(srcFolder):
os.chdir(root)
for file in files:
shutil.copy(file, storeFolder)
在最後一行中,我得到一個文件未發現異常,稱該文件p123456.zip
不存在。有沒有人遇到這個神祕的問題?無論如何繞過這個?這是什麼原因?謝謝。
這是什麼不正確?當您嘗試打開文件時是否收到異常?如果是這樣,什麼是異常和追溯?還是你只是假設Python將會拉錯名字?是否有可能該文件夾中同時包含「p_123_456.zip」和「p123456.zip」,並且它只需要一些時間對Windows Explorer進行排序以顯示文件名? –
我想將文件移動到其他文件夾。所以當名稱被讀取時,它不帶'_'。但是當我調用移動操作時,它說這樣的文件不存在。 – splinter
當你移動的文件是你給源文件的完整路徑? 'source_full_path = os.path.join(root,fname)' –