Python如何修改文档内容
本帖最后由 szsnk144864 于 2022-6-29 19:40 编辑我想通过Python将txt文件里的 01 02 03 04 05 ..... 给替换成 A B C D E .......
但是还要保持其它的不变,
请问各位大佬应该如何来实现?请各位大佬指点迷津
027你要替换成什么? 用re模块,轻松搞定 grekevin 发表于 2022-6-29 19:50
027你要替换成什么?
到026就结束了:lol icie 发表于 2022-6-29 19:50
用re模块,轻松搞定
不会弄,我还在学习中.....{:1_923:} 百度一下python的正则表达式语法,匹配0开头的数字 再百度一下文件操作 然后替换就ok了, 加油!(随手写了一个,没写文件操作哈){:1_921:}
import re
def change(matched):
return chr(int(matched.group())+64)
pattern = '0+'
string = '第1条01第2条02第10条010'
res = re.sub(pattern,change, string)
print(res) 可能有BUG,但就是这个意思
import re
import string
with open('./test.txt', 'r', encoding='utf-8') as fp:
for line in fp:
match_data = re.match(r'^(\d+)$', line)
if match_data:
new_text = string.ascii_uppercase
with open('./new_text.txt', 'a', encoding='utf-8') as fp:
fp.write(new_text + '\n')
else:
with open('./new_text.txt', 'a', encoding='utf-8') as fp:
fp.write(line) regis75 发表于 2022-6-29 20:13
百度一下python的正则表达式语法,匹配0开头的数字 再百度一下文件操作 然后替换就ok了, 加油!(随手写了 ...
谢谢大佬指点,明白了,{:1_919:} grekevin 发表于 2022-6-29 20:23
可能有BUG,但就是这个意思
import re
import string
谢谢大佬{:1_893:} from pathlib import Path
import string
from itertools import zip_longest
abc_num= dict(zip_longest(string.ascii_uppercase,['0' + str(i) for i in range(1,27)]))
def get_key(d,value):
k =
if k:
return k
else:
return None
with open(Path(__file__).parent.joinpath('num.txt'), 'r',encoding='utf8') as f:
r = f.readlines()
new_r = []
for line in r:
if get_key(abc_num,line.strip()) is not None:
new_r.append(get_key(abc_num,line.strip()) + '\n')
else:
new_r.append(line)
with open(Path(__file__).parent.joinpath('num.txt'), 'w',encoding='utf8') as f:
f.writelines(new_r)
页:
[1]