python - 如何通过在python中打开该文件夹中的其他文件来打开文件夹循环

标签 python python-3.x

当前的问题是建立在 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/

相关文章:

python - 将从左到右的图转换为从下到上的图(转置不起作用)

python - 我无法处理列表中的键

python - 用于输出到文件的密码生成器

python - 获取数字元素最大的元组,如果出现平局,则随机选择平局元组之一

Python logging - 过滤所有记录器的日志消息

python - PNG、GIF 等的 Tensorflow Label_Image

python - 如何在列表中找到最多 3 个索引?

python - 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

python - 仅缩放数据框中包含字符串的数值

python-3.x - 禁用部分 nlp 管道