目前的问题是基于this问题。
我正在尝试创建一个python脚本,它将遍历指定文件夹中的所有文本文件。文本文件包含将移动到其他指定文件夹的文件的目录。循环遍历文本文件时,它会从该文本文件的每一行的文件目录中获取文件。
最终目标是让文本文件中引用的所有文件移动到一个指定的文件夹(\ 1855)。
import shutil
dst = r"C:/Users/Aydan/Desktop/1855"
with open(r'C:\Users\Aydan\Desktop\RTHPython\Years') as my_folder:
for filename in my_folder:
text_file_name = filename.strip()
with open (text_file_name) as my_file:
for filename in my_file:
file_name = filename.strip()
src = r'C:\Users\Aydan\Desktop' + file_name
shutil.move(src, dst)
一个文本文件(1855.txt)包含:
/data01/BL/ER/D11/fmp000005578/BL_ER_D11_fmp000005578_0001_1.txt
/data01/BL/ER/D11/fmp000005578/BL_ER_D11_fmp000005578_0002_1.txt
/data01/BL/ER/D11/fmp000005578/BL_ER_D11_fmp000005578_0003_1.txt
和另一个文本文件(1856.txt)包含:
/data01/BL/ER/D11/fmp000005578/BL_ER_D11_fmp000005578_0004_1.txt
/data01/BL/ER/D11/fmp000005578/BL_ER_D11_fmp000005578_0005_1.txt
/data01/BL/ER/D11/fmp000005578/BL_ER_D11_fmp000005578_0006_1.txt
这是我运行上述脚本时遇到的错误:
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
with open(r'C:\Users\Aydan\Desktop\RTHPython\Years') as my_folder:
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Aydan\\Desktop\\RTHPython\\Years'
此脚本似乎没有将此处命名的文件移动到C:/ Users / Aydan / Desktop / 1855目标,即使在脚本中我试图遵循迭代每个项目的相同逻辑文本文件,但将该逻辑应用于文件夹而不是文本文件。
任何寻求解决方案的帮助都会非常棒!如果您需要有关文件的更多信息,请询问。
谢谢!
Aydan。
答案 0 :(得分:1)
由于您无法使用open
方法打开整个文件夹,因此您可以循环浏览该文件夹中的每个.txt文件:
import shutil
import glob
dst = r"C:/Users/Aydan/Desktop/1855"
for filename in glob.glob(r"C:\Users\Aydan\Desktop\RTHPython\Years\*.txt"):
text_file_name = filename.strip()
with open (text_file_name) as my_file:
for filename in my_file:
file_name = filename.strip()
src = r'C:\Users\Aydan\Desktop' + file_name
shutil.move(src, dst)