打开CSV目录中的所有文件并读取每行Python

时间:2013-06-22 01:47:20

标签: python csv directory readlines

您好我正在寻找一些有关我遇到的问题的帮助。我想搜索我的数据所在的目录(如下所示),仅用于某些文件类型。下面是我的代码,但它不是很正常。

当前输出是两个结果之一。它只打印文件的第一行,只打印空白结果。

好的,这就是我想要做的。我想搜索仅列出csv文件的目录。那么我想要做的是让循环逐行读取每个文件并打印文件中的每一行,然后对其余的csv文件重复此操作。

任何人都可以告诉我如何编辑下面的代码,仅搜索CSV文件,以及如何打印文件中的每一行,然后重复下一个CSV文件,直到找到并打开所有CSV文件。这可能吗?

import os

rootdir= 'C:\Documents and Settings\Guest\My Documents\Code'

def doWhatYouWant(line):
    print line

for subdir, dirs, files in os.walk(rootdir):
   for file in files:
        f=open(file,'r')
        lines = f.readlines()
        f.close()
        f=open(file,'wU')
        for lines in lines:
            newline=doWhatYouWant(line)
            f.write(newline)
        f.close

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

以下代码有效。我评论了内联修改的内容。

import os

rootdir= 'C:\\Documents\ and\ Settings\\Guest\\My\ Documents\\Code\\' 
#use '\\' in a normal string if you mean to make it be a '\'   
#use '\ ' in a normal string if you mean to make it be a ' '   


def doWhatYouWant(line):
    print line
    return line 
    #let the function return, not only print, to get the value for use as below 


for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        f=open(rootdir+file,'r') #use the absolute URL of the file
        lines = f.readlines()
        f.close()
        f=open(file,'w') #universal mode can only be used with 'r' mode
        for line in lines:
            newline=doWhatYouWant(line)
            f.write(newline)
        f.close()