У меня есть большое количество файлов, содержащих данные, которые я пытаюсь обработать с помощью скрипта Python.
Файлы находятся в неизвестной кодировке, и если я открою их в Notepad ++, они содержат числовые данные, разделенные загрузкой «нулевых» символов (представленных как NULL белым на черном фоне в Notepad ++).
Чтобы справиться с этим, я разделяю файл нулевым символом \ x00 и извлекаю только числовые значения, используя следующий скрипт:
stripped_data=[]
for root,dirs,files in os.walk(PATH):
for rawfile in files:
(dirName, fileName)= os.path.split(rawfile)
(fileBaseName, fileExtension)=os.path.splitext(fileName)
h=open(os.path.join(root, rawfile),'r')
line=h.read()
for raw_value in line.split('\x00'):
try:
test=float(raw_value)
stripped_data.append(raw_value.strip())
except ValueError:
pass
Однако в файле иногда присутствуют другие нераспознанные символы (насколько я обнаружил, всегда в самом начале) - они отображаются в Notepad ++ как «EOT», «SUB» и «ETX». Похоже, что они мешают обработке файла в Python - файл заканчивается этими символами, хотя в Notepad ++ явно видно больше данных.
Как удалить все символы, не входящие в ASCII, из этих файлов перед обработкой?