【问题标题】:iterating over files in folder using os python使用os python遍历文件夹中的文件
【发布时间】:2018-08-13 20:12:27
【问题描述】:

最终目标:遍历文件夹中的许多文件以执行一组特定任务。

近期目标:加载下一个文件 (file2) 以执行任务

背景:我正在使用以下代码

import os

folder = '/Users/eer/Desktop/myfolder/'

for subdir, dirs, files in os.walk(folder):
    for item in os.listdir(folder):
        if not item.startswith('.') and os.path.isfile(os.path.join(folder, item)): #gets rid of .DS_store file
            print(item)

输出: print(item)

file1.txt
file2.txt
file3.txt
(etc...)

我用下面的代码打开第一个file

data_path = folder + item
file = open(data_path, "r")

#perform a set of tasks for this file

这适用于打开第一个文件file1.txt 并执行一组任务。

但是,我不确定如何加载 file2.txt(最终是 file3.txtetc...),以便继续执行任务

问题:

1) 如何将此代码放入for 循环中? (这样我就可以加载所有文件并执行任务)?

【问题讨论】:

  • 把处理放到for循环里?我不明白你在问什么。
  • 我刚刚更新了我的问题......但是,是的,一个 for 循环,如果这样可以解决问题
  • 您已经有了for 循环,它就是您的print 语句所在的位置...

标签: python-3.x for-loop if-statement operating-system directory


【解决方案1】:

您可以在同一个循环中执行文件操作,例如:

import os

folder = '/Users/eer/Desktop/myfolder/'

for subdir, dirs, files in os.walk(folder):
    for item in os.listdir(folder):
        if not item.startswith('.') and os.path.isfile(os.path.join(folder, item)):
            data_path = folder + item
            with open(data_path, "r") as file:
                ... use file here ...

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多