2016-11-12 75 views
0

我使用Python shutil模块移动4 TXT从FolderA文件FolderB中。为什么我不能动只是我的文本文件,以不同的文件夹在Python?

当我运行下面的代码,我收到了追溯错误:

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

但我知道那条路确实在事实上是存在的,因为当我尝试这个命令能正常工作并移动整个文件夹A(包括TXT文件)到FolderB中:

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

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

+0

什么是追踪误差?你为什么认为'FolderA.txt'等于4个文本文件?你可能想看看'fnmatch'或'glob'模块。 – AChampion

回答

1

1,正确的逃生路径分隔符,或者使用双反斜线或在前面加一个r'',以表明其原始字符串像下面

这个命令不是你做何意,但试图移动文件调用FolderA.txt到FolderB中下面

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

代码应该做你的原意。 使用水珠模块到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') 
+0

是否有可能只使用shutil模块? – YoungCoder

+0

这是我被指示使用的。 – YoungCoder

+1

我不知道如果多数民众赞成可能,最多可以使用os.listdir()来获得的,而不是使用水珠模块的所有文件列表,如果你想移动文件夹中的一切,而不过滤.txt文件,那么它是可行的单独shutil – Skycc

0

您需要使用Windows路径时,否则下一个字符转义使用双反斜线,从而提高了IOError: [Errno 2] No such file or directory:...'。即

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

我的注意的是,双反斜线还是给了我同样的错误。 – YoungCoder

相关问题