我有一個python腳本,它使我在Ubuntu 12.02上使用Python 2.7.3很難。 PS:它在Windows上運行時沒有問題。在Linux上shutil samefile錯誤
>>> import os
>>> import shutil
>>> shutil.copy("/mnt/my_network_dive/somewhere/sample.xml", "/mnt/my_network_drive/COMPLETED/")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/shutil.py", line 117, in copy
copyfile(src, dst)
File "/usr/lib/python2.7/shutil.py", line 69, in copyfile
raise Error("`%s` and `%s` are the same file" % (src, dst))
shutil.Error: `/mnt/my_network_dive/somewhere/sample.xml` and `/mnt/my_network_drive/COMPLETED/sample.xml` are the same file
檢查文件的一些屬性:
>>> os.path.exists("/mnt/my_network_drive/somewhere/sample.xml")
True
>>> os.path.exists("/mnt/my_network_drive/COMPLETED/sample.xml")
True
>>> os.stat("/mnt/my_network_drive/somewhere/sample.xml")
posix.stat_result(st_mode=33272, st_ino=4913809333, st_dev=25L, st_nlink=1, st_uid=1000, st_gid=0, st_size=5447, st_atime=1465311674, st_mtime=1465311674, st_ctime=1465311685)
>>> os.stat("/mnt/my_network_drive/COMPLETED/sample.xml")
posix.stat_result(st_mode=33272, st_ino=4913809333, st_dev=25L, st_nlink=1, st_uid=1000, st_gid=0, st_size=10, st_atime=1465317482, st_mtime=1465317482, st_ctime=1465317483)
>>> os.path.islink("/mnt/my_network_drive/somewhere/sample.xml")
False
>>> os.path.islink("/mnt/my_network_drive/COMPLETED/sample.xml")
False
>>> shutil._samefile("/mnt/my_network_dive/somewhere/sample.xml", "/mnt/my_network_drive/COMPLETED/sample.xml")
False
正如你看到的,調用shutil._samefile
我得到False
但仍shutil.copy
提高samefile error
。
我忘了什麼嗎?任何其他方式來移動或複製文件與Python?
沒有必要複製它們。它們是指向同一文件的兩個不同的目錄條目。作爲相同的文件,他們的內容不可能有所不同。 –
(爲什麼'shutil._samefile'返回False是一個不同的問題,也許是提交錯誤的一些問題,但由於'st_dev'和'st_ino'是相同的,所以毫無疑問它真的是兩者指向的內容相同目錄條目)。 –
@vmenezes在第一個框中複製的第一個參數包含驅動器的潛水故障,是否只有錯字? –