Modify file using python
我有包含以下行的文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | info face="asd" size=49 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=0,0 common lineHeight=52 base=43 scaleW=128 scaleH=128 pages=1 packed=0 page id=0 file="asd.png" chars count=9 char id=32 x=58 y=82 width=0 height=0 xoffset=0 yoffset=40 xadvance=9 page=0 chnl=0 char id=179 x=34 y=42 width=28 height=38 xoffset=2 yoffset=6 xadvance=26 page=0 chnl=0 char id=181 x=94 y=2 width=28 height=38 xoffset=2 yoffset=6 xadvance=26 page=0 chnl=0 char id=183 x=2 y=42 width=30 height=38 xoffset=2 yoffset=6 xadvance=27 page=0 chnl=0 char id=185 x=2 y=2 width=30 height=38 xoffset=2 yoffset=6 xadvance=27 page=0 chnl=0 char id=187 x=64 y=2 width=28 height=38 xoffset=2 yoffset=6 xadvance=26 page=0 chnl=0 char id=189 x=34 y=2 width=28 height=38 xoffset=2 yoffset=6 xadvance=26 page=0 chnl=0 char id=191 x=34 y=82 width=22 height=36 xoffset=2 yoffset=8 xadvance=18 page=0 chnl=0 char id=193 x=2 y=82 width=28 height=38 xoffset=2 yoffset=6 xadvance=26 page=0 chnl=0 kernings count=0 |
我需要找到
1 2 | input = open('file.txt', 'r') for line in input: |
在这里,我想捕获
您将不得不替换该文件(因此写入临时文件)。但是,
1 2 3 4 5 6 7 8 9 10 11 | import fileinput import sys for line in fileinput.input(filename, inplace=True): if line.startswith('char id='): _, id_, rest = line.split(None, 2) id_ = int(id_.split('=')[1]) id_ += 1 # adjust as needed line = 'char id={} {}'.format(id_, rest) sys.stdout.write(line) |
本例只需将
通过指定