python-如何修复输出文件而不是逐行破坏输出?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-如何修复输出文件而不是逐行破坏输出?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2416字,纯文字阅读大概需要4分钟。
内容图文
![python-如何修复输出文件而不是逐行破坏输出?](/upload/InfoBanner/zyjiaocheng/670/541f651ec3b64a82999133950bceaee0.jpg)
我正在编写一个Python脚本来读取文件,逐行读取该文件,并通过用户命令行参数将数据从该文件解析到另一个文本文件.现在,我能够逐行读取输入文件,并通过命令行参数解析出数据.但是,我试图写的输出文件全部打印在一行中,而不是逐行中断输出.
temp.log:
06 May 19 03:40:35 3 abCodeClearTrap Error Clear Trap (agent: 12367a12,
chassis:12367a12, ErrIdText: ERROR ID TEXT, csssi: EXTIFG, clearedID:
0x089088394)
06 May 19 03:44:35 3 abCodeErrorTrap Error Trap (agent: 12368a15, chassis:
12368a15, ErrIdText: Skip this item, csssi: SSRSSR, clearedID:
0x089088394)
我的代码:
import re, sys
with open('temp.log') as f:
lines = f.readlines()
with open('output.txt') as o:
data = []
for line in lines:
if 'date' in sys.argv:
try:
date = re.match(r'\date{2} \w+ \date{2}', line).group()
row.append(date)
except:
date = 'date'
if 'agent' in sys.argv:
try:
agent = re.search(r'agent:\s(.*?),', line).group()
row.append(agent)
except:
agent = 'agent:'
if 'err' in sys.argv:
try:
errID = re.search(r'ErrIdText:\s(.*?),', line).group()
row.append(errID)
except:
errID = 'ErrIdText:'
if 'clear' in sys.argv:
try:
clear = re.search(r'clearedID:\s(.*?)\)', line).group()
row.append(clear)
except:
clear = 'clearedID:'
row = []
data.append(row)
for row in data:
lines = o.writelines(row)
print(row)
o.close()
没有错误消息,但我希望我的output.txt文件逐行细分.
例如:
如果用户运行:
python export.py agent chassis
我希望output.txt可以打印
['agent: 12367a12,', 'chassis:12367a12,']
['agent: 12368a15,', 'chassis:12368a15,']
但是output.txt中的输出是:
agent:12367a12, chassis:12367a12, agent:12368a15, chassis:12368a15,
解决方法:
干得好 :)
for row in data:
lines = o.writelines(row)
lines = o.writelines("\n")
print(row)
要么
for row in data:
row.append("\n")
lines = o.writelines(row)
print(row)
顺便说一句,我很惊讶该代码能正常工作……因为您在使用它后定义了行
// ( * )
if something
try:
date = re.match(r'\date{2} \w+ \date{2}', line).group()
row.append(date) // should crash
except:
date = 'date'
if 'agent' in sys.argv:
try:
agent = re.search(r'agent:\s(.*?),', line).group()
row.append(agent) // should crash
except:
agent = 'agent:'
if 'err' in sys.argv:
try:
errID = re.search(r'ErrIdText:\s(.*?),', line).group()
row.append(errID) // should crash
except:
errID = 'ErrIdText:'
if 'clear' in sys.argv:
try:
clear = re.search(r'clearedID:\s(.*?)\)', line).group()
row.append(clear) // should crash
except:
clear = 'clearedID:'
row = [] // this should be defined where I put the star ( * )
data.append(row) // always appends empty row ( [] )
内容总结
以上是互联网集市为您收集整理的python-如何修复输出文件而不是逐行破坏输出?全部内容,希望文章能够帮你解决python-如何修复输出文件而不是逐行破坏输出?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。