gpt4 book ai didi

python - 使用python修改文件

转载 作者:行者123 更新时间:2023-11-28 22:55:37 24 4
gpt4 key购买 nike

我有包含以下行的文件:

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

我需要找到 id 值,然后根据简单条件修改(从值中添加/减去一些数字)该数字并写回文件。我的尝试是:

input = open('file.txt', 'r')
for line in input:

这里我想捕获行 char id= 的 3 个部分,值和行的其余部分。然后修改值并创建新字符串。但我怀疑它在 Python 中是否有效。此外,我不确定是否有一种方法可以处理同一文件而不是创建新文件、删除旧文件并重命名回旧名称以修改文件内容。

最佳答案

您将 替换该文件(因此写入一个临时文件)。然而,fileinput module让这对你来说很容易:

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)

此示例只是将 id 值递增 1,您可以调整代码以使用 id_ 整数执行任何操作。

通过指定 inplace=Truefileinput 模块会将原始文件移动到备份,捕获您写入到 stdout 的任何内容,并且而是将其写入原始文件位置。

关于python - 使用python修改文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16701779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com