2016-12-07 67 views
0

我有一个奇怪的要求自动化脚本即时通讯尝试用来学习更多的Python。基本上什么即时试图做的就是蟒蛇读取目录的python脚本是在(IM希望最终把它变成一个EXE)使用查找所有CSV文件:Python3从列表中打开当前目录中的不同文件

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

这再追加所有CSV名一个列表,即时通讯然后使用:

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

本工程以打开变量名我在使用之前已经定义,香港专业教育学院测试的所有似乎工作。我需要做的是让python迭代它创建的列表并为每个文件运行相同的代码。所以我需要做的是这样的:

with open(for FN in FileName: doStuffBelow(), newline='') as f: 

这显然是行不通的,只是想知道如果我能采取的每个项目在列表中,使其运行低于然后循环的功能恢复,直到结束。任何帮助赞赏:)。此外,列表长度是可变的,具体取决于生成了多少个CSV文件,所以我甚至不能在这个实例中预先定义一堆变量。

回答

0

我相信你想是这样的:

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() 
+1

哇我会采取TARD奖。我本该工作了..谢谢你,你是一个传奇 –

+0

@AlistairBendall不用担心,如果你发现这个有用的upvote和接受,欢迎堆栈溢出:) –

相关问题