Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 打开CSV目录中的所有文件并读取每一行_Python_Csv_Directory_Readlines - Fatal编程技术网

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

Python 打开CSV目录中的所有文件并读取每一行,python,csv,directory,readlines,Python,Csv,Directory,Readlines,嗨,我正在寻找一些帮助,关于我有一个问题。我只想在我的数据所在的目录(如下所示)中搜索某些文件类型。下面是我的代码,但它不是很正常 电流输出是两种结果之一。要么只打印文件的第一行,要么打印空白结果 好的,这就是我想做的。我只想在列出的目录中搜索csv文件。然后我想做的是让循环逐行读取每个文件并打印文件中的每一行,然后对其余的csv文件重复此操作 任何人都可以告诉我如何编辑下面的代码,只搜索CSV文件,以及如何打印文件中的每一行,然后重复下一个CSV文件,直到找到并打开所有CSV文件。这可能吗 i

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

电流输出是两种结果之一。要么只打印文件的第一行,要么打印空白结果

好的,这就是我想做的。我只想在列出的目录中搜索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

谢谢你的帮助

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

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

谢谢@Skyler,我刚刚尝试实现此功能,但出现以下错误。回溯(最后一次调用):文件“C:/Documents and Settings/Guest/My Documents/SC/Actual work/Part2/New Folder/New Folder/ohno.py”,第13行,在f=open(rootdir+File,'r')#中使用文件的绝对URL IOError:[Errno 2]没有这样的文件或目录:“C:\\Documents and Settings\\Guest\\My Documents\\SC\\Actual work\\Part2\\New Folder4033\u 1800\u Data.csv”,因为您的URL太复杂了。你能把URL弄干净吗?没有空格或特殊字符。如果我将URL设置为C:\Documents and Settings\Guest\My Documents\ABC会更好吗?我没有windows系统可以尝试。你可能想先试试“C:\\ABC\\”看看会发生什么。Hmmm@Skyler这确实有点帮助,但不是我想要的,但无论如何,谢谢你需要在
rootdir
字符串中添加
r
前缀,以防止反斜杠被解释为转义字符。为了只处理CSV文件,除了使用
'*.CSV'
作为模式而不是显示的模式外,您可以使用to相关问题。另外,在最后,您需要一个
f.close()
来实际调用该方法。