当前的问题是建立在 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 目的地,即使在脚本中我试图遵循相同的逻辑遍历每个项目文本文件,但将该逻辑应用于文件夹而不是内部文本文件。
找到解决方案的任何帮助都很棒!如果您需要有关这些文件的更多信息,请询问。
谢谢!
艾丹。
最佳答案
由于您无法使用 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)
关于python - 如何通过在python中打开该文件夹中的其他文件来打开文件夹循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45216970/