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

1 投票
2 回答
14567 浏览
提问于 2025-04-18 08:37

我在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 在不同的平台上都能很好地使用,避免了斜杠、反斜杠和转义字符带来的各种麻烦。此外,它让你可以把路径当作路径来处理,而不是把字符串当作路径的替代品。

你还可以看看这个 回答,里面有更多的优点。

撰写回答