shutil.move()和copy()的问题
我在Stackoverflow上读了一些关于shutil.move、copy和rename的文章。根据那些参考资料,我还是无法在Windows 7专业版环境下用Python 2.7顺利执行这个脚本,结果总是出错。
我到底哪里做错了呢?
import shutil
shutil.move('C:/Data/Download/Somefile.txt.zip','C:/Data/Archive/')
错误信息:
没有这样的文件或目录:C:/Data/Download/Somefile.txt.zip
我尝试过用//、\和其他路径,但都没有结果。我到底漏掉了什么呢?
这是我使用的参考脚本:
import shutil
import os
source = os.listdir("/tmp/")
destination = "/tmp/newfolder/"
for files in source:
if files.endswith(".txt"):
shutil.copy(files,destination)
2 个回答
0
import shutil
shutil.move(r'C:/Data/Download/Somefile.txt.zip','C:/Data/Archive/')
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。
4
为了更可靠地构建路径,我强烈推荐使用 os.path.join
:
from os.path import join
import shutil
source = join('C', 'Data', 'Download', 'Somefile.txt.zip')
destination = join('C', 'Data', 'Archive')
shutil.move(source, destination)
join
在不同的平台上都能很好地使用,避免了斜杠、反斜杠和转义字符带来的各种麻烦。此外,它让你可以把路径当作路径来处理,而不是把字符串当作路径的替代品。
你还可以看看这个 回答,里面有更多的优点。