Python 如何获得列格式的输出?

Python 如何获得列格式的输出?,python,string,Python,String,我对Python非常陌生,有一个问题。目前,我正在使用它来计算消息发出和消息进入之间的时间。生成的开始时间、时间增量和唯一ID随后显示在文件中。如何生成具有这三种特性的列格式的输出 def time_deltas(infile): entries = (line.split() for line in open(INFILE, "r")) ts = {} for e in entries: if " ".join(e[2:5]) == "Ouch

我对Python非常陌生,有一个问题。目前,我正在使用它来计算消息发出和消息进入之间的时间。生成的开始时间、时间增量和唯一ID随后显示在文件中。如何生成具有这三种特性的列格式的输出

def time_deltas(infile): 
    entries = (line.split() for line in open(INFILE, "r")) 
    ts = {}  
    for e in entries: 
        if " ".join(e[2:5]) == "OuchMsg out: [O]": 
            ts[e[8]] = e[0]    
        elif " ".join(e[2:5]) == "OuchMsg in: [A]":    
            in_ts, ref_id = e[0], e[7] 
            out_ts = ts.pop(ref_id, None)    
            yield (float(out_ts),ref_id[1:-1], float(in_ts) - float(out_ts))


INFILE = 'C:/Users/klee/Documents/Minifile.txt'
print list(time_deltas(INFILE))
以下是实际数据的一个小样本:

61336.206267 - OuchMsg out: [O] enter order. RefID [F25Q282588] OrdID [X1F3500687  ]
替换此项:

print list(time_deltas(INFILE))
与:

对于csv格式,可以导入到电子表格中以列格式显示

您还可以执行以下操作:

print "%10s %10s %10s"%list(time_deltas(INFILE))
因此,每列都有一个固定的10字符宽度。

替换为:

print list(time_deltas(INFILE))
与:

对于csv格式,可以导入到电子表格中以列格式显示

您还可以执行以下操作:

print "%10s %10s %10s"%list(time_deltas(INFILE))

因此,每列都有固定的10个字符宽度。

要将其写入CSV文件,可以使用以下方法:

import csv

with open('output_file.csv', 'w') as f:
    csv_w = csv.writer(f)
    for rec in time_deltas(infile): 
        csv_w.writerow(rec)
甚至更短:

import csv

with open('output_file.csv', 'w') as f:
    csv.writer(f).writerows(time_deltas(infile))

然后在您喜爱的电子表格软件中打开CSV文件。

要将其写入CSV文件,您可以使用以下方法:

import csv

with open('output_file.csv', 'w') as f:
    csv_w = csv.writer(f)
    for rec in time_deltas(infile): 
        csv_w.writerow(rec)
甚至更短:

import csv

with open('output_file.csv', 'w') as f:
    csv.writer(f).writerows(time_deltas(infile))

然后在您喜爱的电子表格软件中打开CSV文件。

在格式化字符串以进行打印时,是否尝试使用制表符“\t”字符?在格式化字符串以进行打印时,是否尝试使用制表符“\t”字符?