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