为什么我不能将我的文本文件移动到 Python 中的不同文件夹?

Why can't I move just my text files to different folder in Python?

我正在使用 Python shutil 模块将 4 个 txt 文件从 FolderA 移动到 FolderB。

当我 运行 以下代码时,我得到一个回溯错误:

shutil.move('C:\Users\Student\Desktop\FolderA.txt', 'C:\Users\Student\Desktop\FolderB')

但我知道路径确实存在,因为当我尝试此命令时它工作正常并将整个文件夹 A(包括 txt 文件)移动到文件夹 B:

shutil.move('C:\Users\Student\Desktop\FolderA', 'C:\Users\Student\Desktop\FolderB')

有什么方法可以只移动文本文件而不只是复制它们吗?如果您想知道,我正在使用 Python Shell 2.7。

使用 Windows 路径时需要使用双反斜杠,否则下一个字符会被转义并引发 IOError: [Errno 2] No such file or directory:...'。即

shutil.move('C:\Users\Student\Desktop\FolderA.txt', 'C:\Users\Student\Desktop\FolderB')

1、正确转义路径分隔符,要么使用双反斜杠,要么在前面加一个r''来表示它的原始字符串,如下所示

此命令未按预期执行,它尝试将文件调用 FolderA.txt 移动到 FolderB

shutil.move(r'C:\Users\Student\Desktop\FolderA.txt', r'C:\Users\Student\Desktop\FolderB')

下面的代码应该可以达到您的预期。 使用 glob 模块 grep FolderA 中的所有 txt 文件,然后将它们 1 个 1 个移动到 FolderB

import glob
# this will move all txt file from FolderA into FolderB
# but you need to ensure FolderB exists, else it might create a file named FolderB instead
for f in glob.glob(r'C:\Users\Student\Desktop\FolderA\*.txt'):
    shutil.move(f, r'C:\Users\Student\Desktop\FolderB')