shutil.move()和copy()的问题

时间:2014-06-04 18:10:23

标签: python windows python-2.7

我已经在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)

2 个答案:

答案 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/')