免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14112 | 回复: 12
打印 上一主题 下一主题

python:将数据按固定格式写入文件 [复制链接]

论坛徽章:
1
子鼠
日期:2014-08-28 13:27:13
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-25 14:19 |只看该作者 |倒序浏览
本帖最后由 chosen86 于 2014-08-25 14:20 编辑

有一个log文件,数据格式如下,一共四列,分别是时间戳,源ip,用户名,目的ip或URL,
1405323925.0 10.6.99.163 test1 10.203.44.5
1405323926.0 10.6.99.163 test1 10.203.44.5
1405323941.0 10.6.99.163 test1 210.75.65.219
1405323942.0 10.6.99.163 test1 210.75.65.219
1405323955.0 10.6.99.163 test1 www.baidu.com
1405323987.0 10.6.99.163 test1 10.203.44.5

现在想把log文件按tmp文件的格式转成tmp文件,tmp文件格式如下:
version, source server IP, date time, status code, source IP, destination IP, protocol, fullurl, port, category number, filetype, bytesent, byteReceived,duration, keyword, user path,这么多列,其中的date time ,source IP ,destination IP,要由log文件中的信息填充,其他log文件中没有的信息,全部写入0,求各位指教!python小白,刚学不久!谢谢

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2014-08-25 14:27 |只看该作者
这不就是一个字符串格式化 再加一个 print 就 行了么?

论坛徽章:
5
巨蟹座
日期:2014-08-28 18:12:342015年迎新春徽章
日期:2015-03-04 10:01:4415-16赛季CBA联赛之江苏
日期:2016-04-28 09:43:3115-16赛季CBA联赛之吉林
日期:2016-06-22 10:34:4315-16赛季CBA联赛之山西
日期:2016-08-16 16:29:55
3 [报告]
发表于 2014-08-25 14:30 |只看该作者
log 文件都固定了....
按照样式,对应添加0 不就好了么。。。

论坛徽章:
1
子鼠
日期:2014-08-28 13:27:13
4 [报告]
发表于 2014-08-25 14:31 |只看该作者
回复 2# q1208c
能写一下代码吗,刚开始看python,不知道具体怎么写,谢谢

   

论坛徽章:
1
子鼠
日期:2014-08-28 13:27:13
5 [报告]
发表于 2014-08-25 14:36 |只看该作者
回复 3# Linux_manne
要判断log文件中的数据对应哪一列吧。。。新手不会写。。

   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
6 [报告]
发表于 2014-08-25 14:37 |只看该作者
回复 4# chosen86

你给的资料太少了, 我写不出你要的代码, 只能给个参考代码.
  1. XXX = "%s,%s,%d\n" % (ver, user, id)
  2. print XXX
复制代码

论坛徽章:
5
巨蟹座
日期:2014-08-28 18:12:342015年迎新春徽章
日期:2015-03-04 10:01:4415-16赛季CBA联赛之江苏
日期:2016-04-28 09:43:3115-16赛季CBA联赛之吉林
日期:2016-06-22 10:34:4315-16赛季CBA联赛之山西
日期:2016-08-16 16:29:55
7
发表于 2014-08-25 14:41
回复 5# chosen86


    log 文件你说都已经固定了阿... 还要判断什么

论坛徽章:
1
子鼠
日期:2014-08-28 13:27:13
8 [报告]
发表于 2014-08-25 14:42 |只看该作者
回复 6# q1208c
比如有一个test.log文件,一共四列,分别是时间戳,源IP,用户名,目的IP:
1405323925.0 10.6.99.163 test1 10.203.44.5
1405323926.0 10.6.99.163 test1 10.203.44.5
1405323941.0 10.6.99.163 test1 210.75.65.219
1405323942.0 10.6.99.163 test1 210.75.65.219
1405323955.0 10.6.99.163 test1 www.baidu.com
1405323987.0 10.6.99.163 test1 10.203.44.5

现在想把log文件转换成tmp文件,tmp文件格式:version, source server IP, date time, status code, source IP, destination IP, protocol, fullurl, port, category number, filetype, bytesent, byteReceived,duration, keyword, user path,一共有这么多列,红色的列需要log文件中的数据填充,其他列都填0,这样可以了吗?

论坛徽章:
1
子鼠
日期:2014-08-28 13:27:13
9 [报告]
发表于 2014-08-25 14:44 |只看该作者
回复 7# Linux_manne
tmp文件是有格式的啊,log文件中的数据要对应tmp文件格式写入,log文件中的源IP对应tmp文件中的源IP,直接写好像不行吧

   

论坛徽章:
5
巨蟹座
日期:2014-08-28 18:12:342015年迎新春徽章
日期:2015-03-04 10:01:4415-16赛季CBA联赛之江苏
日期:2016-04-28 09:43:3115-16赛季CBA联赛之吉林
日期:2016-06-22 10:34:4315-16赛季CBA联赛之山西
日期:2016-08-16 16:29:55
10 [报告]
发表于 2014-08-25 15:01 |只看该作者
回复 9# chosen86

  1. read_f = open('log','r')
  2. f = open('tmp.log','w')
  3. for l in read_f:
  4.     ll = l.split(' ')

  5.     f.writelines("0,0,%s,0,%s,%s,0,0,0\n" %(ll[0],ll[1],ll[3].strip('\n')))
  6. f.close()
  7. read_f.close()

复制代码
你要这样?? 囧死了。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP