我正在逐行阅读日志。我试图只打印该行的某些列。对于 bash 脚本,我会使用 awk 和 $ 来分隔它。但是,我无法弄清楚如何使用 Python 来完成它。我尝试使用 split,但它并不完全符合我的要求。
我现在的代码:
for line in file:
if STORED_PROCS_BEGIN in line:
log.write(line)
elif STORED_PROCS_FINISHED in line:
log.write(line)
elif STORED_TASK_BEGIN in line:
log.write(line)
elif STORED_TASK_FINISHED in line:
log.write(line)
elif ACTUATE_REPORT_SCHEDULE in line:
break
所以当我试图格式化传递给 write() 的行时。
我想要的例子:
日期时间信息 junk1 junk2 名称 => 日期时间信息名称
编辑:我有一个想法,我可以拆分和提取我想要的字段,然后将它们连接在一起。但必须有更好的方法。
最佳答案
您可以使用 split()
将一行拆分成单词,没错。然后你可以索引你想要在输出中的列:
line = 'date time info junk1 junk2 name'
parts = line.split()
parts_I_want = parts[0:3] + parts[5:6]
print ' '.join(parts_I_want)
如果只是想删除一些列,也可以使用del
:
line = 'date time info junk1 junk2 name'
parts = line.split()
del parts[4] # junk2
del parts[3] # junk1
print ' '.join(parts)
关于python - 仅写入文件中某行的某些列(以空格分隔),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31302517/