Python3从列表中打开当前目录中的不同文件

时间:2016-12-07 10:55:18

标签: python-3.x

我有一个奇怪的问题是我试图用来学习更多python的自动化脚本。基本上我试图做的是让python读取python脚本所在的目录(我希望最终将其转换为EXE)以使用以下命令查找所有CSV文件:

McFadden's R-Sqr

然后将所有CSV名称附加到列表中,然后使用:

os.listdir("./")
    if file.endswith(".csv"):
    FileName.append(file)  # FileName is defined a blank list at the top

这可以打开我在使用之前定义的变量文件名,我已经测试过,而且一切似乎都有效。我需要做的是让python迭代它创建的列表并为每个文件运行相同的代码。所以我需要做一些事情:

with open(filename, newline='') as f:
reader = csv.reader(f)
doStuff()

这显然不起作用,只是想知道我是否可以将列表中的每个项目,让它运行下面的函数,然后循环回到结束。任何帮助赞赏:)。此外,列表长度也是可变的,具体取决于生成了多少CSV文件,因此我甚至无法在此实例中预先定义一堆变量。

1 个答案:

答案 0 :(得分:1)

我相信你想要这样的东西:

for i in os.listdir():
    if file.endswith(".csv"):
        with open(i, newline='') as f:
            reader = csv.reader(f)
            doStuff()

或者如果您想先将文件放入列表中:

csv_files = []
for i in os.listdir():
    if file.endswith(".csv"):
        csv_files.append(i)

for i in csv_files:
    with open(i, newline='') as f:
        reader = csv.reader(f)
        doStuff()