我编写了一个程序,该程序读取文本文件的所有行,然后找到该行的一部分,其中特定的字符串以Kbits结尾。对于发生这种情况的所有行,我将Kbits(它是一个int)之前的部分放到列表中,然后将其写入到csv文件中。问题是,当我写入csv文件时,会将Int拆分,并将每个数字分配给csv文件中的新列。我有一个想法与我的打字方式有关,但我无法弄清楚。我正在使用Python 2.7。
txt文件中的一行如下所示:
[2018-01-24 14:57:05,766] [ 5] 2.00-3.00 sec 872 KBytes 7140 Kbits/sec 2.714 ms 693/1326 (52%)
对于这一特定行,我想7140
在.csv文件中添加一个
我的代码如下:
lst = []
myfile = file('file.csv', 'wb')
txtfile = open('file.txt')
for line in txtfile:
line = str(re.findall('\d*\ Kbits', line))
if(line == "[]"):
r = 1
else:
new = line.replace(" Kbits", "")
lst.append(new)
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
for i in range(0, len(lst)):
wr.writerow(lst[i])
txtfile.close()
请尝试以下操作:
import re
import csv
with open('file.txt', 'rb') as f_input, open('file.csv', 'wb') as f_output:
csv_output = csv.writer(f_output, quoting=csv.QUOTE_ALL)
for row in f_input:
kbits = re.findall('(\d+)\ Kbits', row)
if kbits:
csv_output.writerow(kbits)
对于您的示例行file.csv
如下所示:
"7140"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句