Вы можете использовать регулярное выражение re.sub
, чтобы легко заменить ведущий ноль.Используйте это регулярное выражение,
0+([1-9][0-9]*)
И замените его \1
в основном содержимым group1
Демо
Попробуйте эти Pythonкоды,
import re
s = '''id,name,code <br>
0,kevin,010 <br>
1,john,011 <br>
2,casey,020 <br>
3,micheal,030'''
print(re.sub(r'0+([1-9][0-9]*)', r'\1', s))
Печать чисел без начальных нулей,
id,name,code <br>
0,kevin,10 <br>
1,john,11 <br>
2,casey,20 <br>
3,micheal,30
Редактировать:
Вы можете создать такую функцию, котораяпринимает имя файла в качестве аргумента и генерирует новый файл с именем inputfilename.out
import re
from shutil import move
from os import remove
def remove_leading_chars(inputfile):
with open(inputfile, 'r', encoding="utf-8") as infile, open(inputfile+'.out', 'w', encoding="utf-8") as outfile:
for s in infile.readlines():
s = re.sub(r',m+', r',', s)
outfile.write(s)
remove_leading_chars('data.txt')
remove('data.txt')
move('data.txt.out', 'data.txt')
print('writing done')
Содержимое входного файла data.txt
id,name,code <br>
0,mmmkevin,010 <br>
1,mmmjohn,011 <br>
2,mmmcasey,020 <br>
3,mmmicheal,030
Содержимое перезаписанного data.txt
файл
id,name,code <br>
0,kevin,010 <br>
1,john,011 <br>
2,casey,020 <br>
3,icheal,030