#python
#python
Вопрос:
Я должен изменить текстовый файл так, чтобы ‘1900-01-01’ в начале каждой строки исчез, но временная метка (00:05:08.627012) осталась.
Я пробовал некоторые функции line.strip или replace, но я не могу перестать сталкиваться с ошибками (я совершенно новичок в кодировании)
Текст, который необходимо изменить:
1900-01-01 00:05:08.627012 ; 0 ; 1.16198 ; 10000000.0
1900-01-01 00:05:08.627012 ; 1 ; 1.16232 ; 10000000.0
Код, который я использую:
for line in lines:
replace = line.replace('1900-01-01','')
replace = float(replace)
ColumnValues.append(replace)
print(ColumnValues)
Мне нужно получить строки для чтения «00:05:08.627012 ; 0 ; 1.16198 ; 10000000.0» и отбросьте «1900-01-01» в начале, но я продолжаю получать сообщение об ошибке «не удается преобразовать строку в float». Помощь приветствуется!
Комментарии:
1. можете ли вы подтвердить, что ваш файл имеет формат, указанный в вопросе? Можете ли вы также указать, как вы открываете свой файл?
2. Вы уверены, что ошибка появляется во время замены? Ваш
replace
вызов может работать просто отлично, и ошибка возникает во времяfloat(replace)
.
Ответ №1:
00:05:08.627012 ; 0 ; 1.16198 ; 10000000.0
недопустимое значение с плавающей точкой, поэтому преобразование завершается неудачей.
Если формат всегда один и тот же, вы можете просто отрезать начало строки:
for line in lines:
new_line = line[11:] # slice off the first 11 characters
ColumnValues.append(new_line)
Если вам нужна только внутренняя временная метка:
for line in lines:
new_line = line[11:26] # slice off the first 11 characters, and everything after the 26'th
ColumnValues.append(new_line)
Это предполагает, что формат всегда одинаков и имеет одинаковую ширину