我想写一个这样的程序:在一个文件夹中,我有n文件数量;首先读取一个文件并执行一些操作,然后将结果存储在单独的文件中。然后读取第二个文件,再次执行操作并将结果保存到新的第二个文件中。执行n文件数量相同的程序。程序逐个读取所有文件并分别存储每个文件的结果。请举例说明我如何做到这一点。如何读取和写入多个文件?
7
A
回答
11
import sys
# argv is your commandline arguments, argv[0] is your program name, so skip it
for n in sys.argv[1:]:
print(n) #print out the filename we are currently processing
input = open(n, "r")
output = open(n + ".out", "w")
# do some processing
input.close()
output.close()
然后调用它像:
./foo.py bar.txt baz.txt
5
您可能会发现fileinput
模块有用。它专为这个问题而设计。
7
我想你错过的是如何检索该目录中的所有文件。 为此,请使用glob模块。 这里是将.TXT复制所有扩展名的文件*与扩展名为*文件.OUT
import glob
list_of_files = glob.glob('./*.txt') # create the list of file
for file_name in list_of_files:
FI = open(file_name, 'r')
FO = open(file_name.replace('txt', 'out'), 'w')
for line in FI:
FO.write(line)
FI.close()
FO.close()
0
联合答案纳入目录或文件名的参数具体名单为例:
import sys
import os.path
import glob
def processFile(filename):
fileHandle = open(filename, "r")
for line in fileHandle:
# do some processing
pass
fileHandle.close()
def outputResults(filename):
output_filemask = "out"
fileHandle = open("%s.%s" % (filename, output_filemask), "w")
# do some processing
fileHandle.write('processed\n')
fileHandle.close()
def processFiles(args):
input_filemask = "log"
directory = args[1]
if os.path.isdir(directory):
print "processing a directory"
list_of_files = glob.glob('%s/*.%s' % (directory, input_filemask))
else:
print "processing a list of files"
list_of_files = sys.argv[1:]
for file_name in list_of_files:
print file_name
processFile(file_name)
outputResults(file_name)
if __name__ == '__main__':
if (len(sys.argv) > 1):
processFiles(sys.argv)
else:
print 'usage message'
1
我我刚刚刚学到了os.walk()命令,它可能会帮助你。它允许你沿着目录树结构走下去。
import os
OUTPUT_DIR = 'C:\\RESULTS'
for path, dirs, files in os.walk('.'):
for file in files:
read_f = open(os.join(path,file),'r')
write_f = open(os.path.join(OUTPUT_DIR,file))
# Do stuff
0
from pylab import *
import csv
import os
import glob
import re
x=[]
y=[]
f=open("one.txt",'w')
for infile in glob.glob(('*.csv')):
# print "" +infile
csv23=csv2rec(""+infile,'rb',delimiter=',')
for line in csv23:
x.append(line[1])
# print len(x)
for i in range(3000,8000):
y.append(x[i])
print ""+infile,"\t",mean(y)
print >>f,""+infile,"\t\t",mean(y)
del y[:len(y)]
del x[:len(x)]
相关问题
- 1. Python:读取和写入多个文件
- 2. 如何读取和写入文件
- 3. C++如何读取和写入文件
- 4. 如何读取和写入XML文件?
- 5. 如何读取和写入文件
- 6. 异步读取/写入多个文件
- 7. 读取和写入文件
- 8. 读取和写入文件
- 9. 读取和写入文件
- 10. 写入和读取文件
- 11. 读取多个文件并写入多个输出文件
- 12. 读取和写入同一个文件
- 13. 读取和写入一个txt文件
- 14. 写入和读取同一个文件
- 15. 多线程,读取多个文件并写入新文件
- 16. 导入和读取多个文件R
- 17. 如何从一个目录中的多个文件读取和写入? Python
- 18. Node.js fs cheerio读取和写入多个文件
- 19. 从IDL中的多个HDF文件读取和写入数组
- 20. Python:尝试读取和写入多个文件时发出
- 21. 并行读取和写入多个文件
- 22. 多个用户访问RDF文件进行读取和写入
- 23. 使用Java在文件中写入和读取多个字节[]
- 24. 读取和写入文本文件
- 25. Java - 读取和写入文本文件
- 26. 如何使用Ruby读取和写入同一个EXCEL文件?
- 27. 从多个文件读取/写入文本到主文件
- 28. 如何读取/写入xml文件?
- 29. 如何读取,写入gwan的文件
- 30. 如何读取/写入ASCII .pgm文件
功课??检查海报的历史 – 2008-10-16 11:27:05
也许。但与此同时,我自己也只是在学习Python,似乎是一种很好的练习,可以提醒自己,我不会把头撞在墙上。如果他不在乎自己学习这个级别的东西,那么我该争论谁呢?在一天结束时,如果你考试不及格,你仍然失败。 – 2008-10-16 11:30:44
我把它标记为家庭作业;提问和回答作业问题都在网站的名单中,但是为了提问者的利益,我希望我们首先要求他们提供目前无法使用的代码。 – tzot 2008-10-16 11:42:56