Как сохранить отредактированный текстовый файл в новый текстовый файл? - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь сохранить вывод из файлов x .txt только в один файл .txt.Файл .txt должен выглядеть так, как показано на рисунке ниже .На самом деле эта программа читает пару файлов .txt с тоннами данных, которые я отфильтровываю с помощью регулярных выражений.

Мой исходный код:

import os,glob 
import re 

folder_path =(r"C:\Users\yokay\Desktop\DMS\Messdaten_DMT")
values_re = re.compile(r'\t\d+\t-?\d+,?\d*(\t-?\d+,?\d+){71}')     

for filename in glob.glob(os.path.join(folder_path, '*.txt')):
    with open(filename) as lines:
        for line in lines:
            match = values_re.search(line)
            if match:
                values = match.group(0).split('\t')
                assert values[0] == ''
                values = values[1:]
                print(values)

Спасибо за ваше время!:)

1 Ответ

0 голосов
/ 18 октября 2018

Тогда вам просто нужно открыть файл и записать в него значения.Попробуй с этим.Возможно, вам придется отформатировать (я не могу проверить, так как у меня нет ваших текстовых файлов. Я предполагаю, что вывод, который вы имеете в значениях, является правильным, и имейте в виду, что это добавляется, поэтому, если вы запустите более одного раза, вы получите дубликаты.

import os,glob 
import re
folder_path =(r"C:\Users\yokay\Desktop\DMS\Messdaten_DMT") 
values_re = re.compile(r'\t\d+\t-?\d+,?\d*(\t-?\d+,?\d+){71}') 
outF = open("myOutFile.txt", "a")
for filename in glob.glob(os.path.join(folder_path, '*.txt')):
    with open(filename) as lines:
        for line in lines: 
            match = values_re.search(line)
            if match: 
                values = match.group(0).split('\t') 
                assert values[0] == '' 
                values = values[1:] 
                outF.write(values)
                print(values) 
...