如何在Python中将文本文件中列出的文件从一个文件夹移动到另一个文件夹

我正在尝试在Python中创build一个通过文本文件读取的脚本。 在文本文件的每一行上,都有一个文件名。 我希望脚本循环访问文本文件的每一行,并将文件的文件名从当前循环的行中移出,从源文件夹移动到特定的目的地。

希望这个代码给出了一个更准确的想法,我想要做什么:

import shutil dst = "C:\\Users\\Aydan\\Desktop\\1855" with open('1855.txt') as my_file: for line in my_file: src = "C:\\Users\\Aydan\\Desktop\\data01\\BL\\ER\\D11\\fmp000005578\\" + line shutil.move(src, dst) 

我正在考虑将具有特定文件名的文件的内容放到一个数组中,但是我有62700多个可能的文件名,所以我想如果它只是移动文件,因为它循环到每一行会是一个更有效的?

我也有使用一个迭代器(或任何你所说的)的想法设置i = [文本文件中的行数],然后使其滚动,但看起来好像用于for line in my_file:我认为它会合理使用line

对于testing,文本文件包含:

 BL_ER_D11_fmp000005578_0001_1.txt BL_ER_D11_fmp000005578_0002_1.txt BL_ER_D11_fmp000005578_0003_1.txt 

我使用这个代码的问题是,它没有按预期工作,我没有得到任何错误,但文件从一个文件夹到另一个文件的移动不会发生。 如果你们可以指出这个问题的解决scheme,我希望它。

谢谢!

Aydan

Solutions Collecting From Web of "如何在Python中将文本文件中列出的文件从一个文件夹移动到另一个文件夹"

我会尝试:

 import os dst = "C:\\Users\\Aydan\\Desktop\\1855\\" # make sure this is a path name and not a filename with open('1855.txt') as my_file: for filename in my_file: src = os.path.join("C:\\Users\\Aydan\\Desktop\\data01\\BL\\ER\\D11\\fmp000005578\\", filename.strip() ) # .strip() to avoid un-wanted white spaces os.rename(src, os.path.join(dst, filename.strip())) 

在提供目标路径的同时使用.strip()正在解决此问题

 import shutil dst = r"C:/Users/Aydan/Desktop/1855/" with open('test.txt') as my_file: for filename in my_file: file_name = filename.strip() src = r'C:/Users/Aydan/Desktop/data01/BL/ER/D11/fmp000005578/'+ file_name shutil.move(src, dst + file_name)