Я пытаюсь прочитать большие наборы чисел из текстового файла, открытого в кодировке utf-8.
Текстовый файл был копией / вставкой из PDF.
Проблема заключается в отрицательных числах (-1, -2 и т. Д.):
Я удалил все, поэтому отдельные биты строки выглядят так: -1
, -2
и т. Д.
Затем я хочу рассчитать с ними и преобразовать их с float()
, но я получаю ошибку:
can't convert string to float: '-1'
Я пришел к выводу, что '-'
можно интерпретировать как длинный '-'
, как бы это ни называлось, и заменить его вручную в текстовом файле на '-'
. Теперь это работает для этой единственной строки, float () преобразовал ее.
Я написал небольшой скрипт, который находит и заменяет все '-'
на '-'
в текстовом файле, но это не сработало.
with open('text.txt', encoding='utf8') as fobj:
all = []
for line in fobj:
line = line.strip()
if '-' in line:
line.replace('-','-')
print('replaced')
all.append(line)
with open('text2.txt','w',encoding='utf8') as f:
for i in all:
print(i)
f.write(i)
f.write('\n')
Почему я могу заменить '-'
на '-'
вручную, но не этим скриптом?
Спасибо за помощь.
Пример вырезан из текстового файла:
/ 11/3 / 2 / 0 / 0/–1 /
/ 11/5 / 0 / 2 / 0/0 / N
/ 12/3 / 1 / 0 / 0/0 /
/ 12/4 / 1 / 1 / 0/0 / NS
/ 12/4 / 4 / –1 / 0/–1 / H
/ 12/5 / 1 / 0 / 0/–1 / H
/ 12/5 / 2 / 0 / 0/-1 / H
/ 11/4 / 0 / 0 / 0/0 / H
Вы действительно можете увидеть разницу между второй последней и третьей последней строкой -1. В этой копии это. я заменил последний - вручную.