我编写了一个脚本,可以在日志文件中找到最大值。然后我可以将最大值写入另一个文件。 我的问题: 一个。是如何对目录中的所有文件运行它 湾将“文件名”+“最大值”写入1个文件。
这是我的代码:
1 import re
2
3 a = 'NA total MB July.csv'
4 b = 'Total.csv'
5
6 with open(a, 'r') as f1:
7 with open(b,'w') as f2:
8 header = f1.readline()
9 data= f1.readlines()
10 pattern= re.compile(",|\s")
11 maxMB=[]
12 for line in data:
13 parts = pattern.split(line)
14 #print "Log line split",parts #splits the number
15 mbCount= parts[2] #index of the number
16 mbint=float(mbCount)
17 maxMB.append(mbint)# creates a list of all MBs
18 #print "MAX: ", maxMB #prints out the max MB
19 highest=max(maxMB)
20 print highest
21 f2.write(str(highest))#writes highest value to file
这是我的文件输出
167.94
我希望在Total.csv中看到的是
NA total MB July : 167.94
NA total MB August: 123.45
...
..
. For all the csv files with in a folder
如果不一次处理1个文件并手动更改文件名,就无法弄清楚如何完成这项工作。对此n00b的任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
您可以使用os.listdir()
来获取当前目录中的文件。
files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
#do something
您可以在Total.csv
模式下打开ab
文件,这样您就可以将所有最大值附加到该文件中。
with open('Total.csv', 'ab') as out:
writer = csv.writer(out, delimiter=',', quotechar='"',quoting=csv.QUOTE_ALL)
row = (,)
writer.writerow(row)