免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: caesarok
打印 上一主题 下一主题

更改配置文件 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2009-03-11 15:48 |只看该作者

回复 #20 luffy.deng 的帖子


  1. QUOTE:
  2. 原帖由 caesarok 于 2009-3-11 15:34 发表
  3. 想替换为相同文件名,

  4. #-*-coding=gbk-*-
  5. import os
  6. import re
  7. i="E:\WebLog Expert\config\Schedule.cfg"

  8. li=[]
  9. f=open(i,'r')
  10. for i in f:
  11.     if re.search("StartTime=[0-9]*",i):
  12.         i= ...
  13. 直接定位好了,你这样文件大了就不行了。
复制代码

果然是这样的,不过文件才34K,出了那样问题。
太感谢了!

[ 本帖最后由 caesarok 于 2009-3-11 15:50 编辑 ]

论坛徽章:
0
22 [报告]
发表于 2009-03-11 16:06 |只看该作者
原帖由 caesarok 于 2009-3-11 15:48 发表

QUOTE:
原帖由 caesarok 于 2009-3-11 15:34 发表
想替换为相同文件名,

#-*-coding=gbk-*-
import os
import re
i="E:\WebLog Expert\config\Schedule.cfg"

li=[]
f=open(i,'r')
for i in f:
...

才30多k阿?那逐行判断一下就可以了。
#!/usr/bin/python
#coding=utf-8
f=open('t.txt','r+')
while True:
     line = f.readline()
     if not line:
          break
     if line.startswith('StartTime='):
          f.seek(-11,1)
          f.write('9999999999')
          f.seek(1,1)
f.close()


[ 本帖最后由 luffy.deng 于 2009-3-11 16:09 编辑 ]

论坛徽章:
0
23 [报告]
发表于 2009-03-11 16:45 |只看该作者
原帖由 luffy.deng 于 2009-3-11 15:36 发表

搞个200M的文件试试你那个破程序跑起来什么效果。

谢谢
是否因为系统的原因?
我用了你的代码
结果替换的时候
StartTime=1999999999(加一个白快)
最奇怪的是如果是因为9把换行符的'\'给顶掉了那么为什么第二行不是以n开头的而是starttime的行末成了一个白块

我搞明白啦 你的估计不是xp吧
xp的话if flag%18==0:
          f.seek(-12,1)
          f.write('9999999999')
          f.seek(2,1)
才可以

[ 本帖最后由 zhenglxd 于 2009-3-11 17:19 编辑 ]

论坛徽章:
0
24 [报告]
发表于 2009-03-11 22:48 |只看该作者
建议不要直接操作文件,请尝试ConfigParser模块
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP