#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))