о замене текста на Python

#python #text #replace

Вопрос:

У меня есть текстовый файл

 #8,09-24,17:043.00,3.30,2.03,#7,09-24,16:222.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03
 

Я хотел бы изменить его на

 #8,09-24,17:04,3.00,3.30,2.03,#7,09-24,16:22,2.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03
 

Что я могу придумать, так это использовать замену

 textfile=textfile.replace(":01,",":01").replace(":02,",":02") #etc
textfile=textfile.replace(":01",":01,").replace(":02",":02,") #etc
 

Могу ли я узнать, какой другой метод может сделать то же самое, не выводя все возможные результаты.
Спасибо

Комментарии:

1. Какие изменения, не могли бы вы сказать, пожалуйста?

2. изменения будут внесены вовремя, некоторые из них «:00», некоторые «:00» Я хотел бы изменить все это на «:00»,

Ответ №1:

IIUC, вам нужно заменить значения 17:043.00 -like на 17:04,3.00 (скорее всего, чтобы исправить какой-то csv-файл).

Вы могли бы использовать регулярное выражение и re.sub :

 import re

text = '#8,09-24,17:043.00,3.30,2.03,#7,09-24,16:222.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03'
text2 = re.sub(r'(dd:dd)(d )', r'1,2', text)
 

выход:

 #8,09-24,17:04,3.00,3.30,2.03,#7,09-24,16:22,2.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03
 

nb. вы можете проверить, как работает регулярное выражение здесь

Ответ №2:

Похоже, что ваш файл содержит данные в шаблоне фиксированной ширины. Предполагая, что это так, вы могли бы сделать это:-

 S = '#8,09-24,17:043.00,3.30,2.03,#7,09-24,16:222.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03'
T = []
for i in range(0, len(S), 29):
    k = i   14
    T.append(S[i:k] ',' S[k:k 15])
print(''.join(T))