我已经在Stackoverflow上阅读了一些关于shutil.move,复制和重命名的文章。使用这些引用,我似乎仍然无法使用Python 2.7在Windows 7 Professional环境下执行此脚本而没有错误。
我在这里做错了什么?
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)
答案 0 :(得分:3)
为了更可靠的路径构建,我强烈推荐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
在不同平台之间相对便携,您可以绕过与斜杠,反斜杠和转义相关的所有痛点。此外,它允许您将路径视为它们的原样,而不是使用字符串作为路径的代理。
您还可以查看此answer以获取更多优点。
答案 1 :(得分:0)
import shutil
shutil.move(r'C:/Data/Download/Somefile.txt.zip','C:/Data/Archive/')