Как вставить запятую в текстовые файлы каталога? - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть куча текстовых файлов в каталоге, и мне нужно заменить текст в них. Каждая строка выглядит следующим образом:

B6  0x040A43
B17  0x6C00C8

Мне нужно:

  1. Заменить первую часть на 1,28.
  2. Удалить пробел, который является \t пробел.
  3. Удалите шестнадцатеричный идентификатор 0x.
  4. Добавьте запятую после следующих двух символов.

Таким образом, результат должен выглядеть следующим образом:

1,28,04,0A43
1,28,6C,00C8

Я все еще изучаю Python и регулярные выражения, и после нескольких часов игры вокруг этого и до сих пор я написал следующее:

for filename in glob.glob(os.path.join(directory, '*.txt')):
    with open(filename, "r") as f:
        lines = f.read().splitlines()
        for line in lines:
            line = re.sub(r'B\d{1,}[\s+]0x','1,28,', line)
            print(line)

Это распечатывает 1,28,040A43 так что у него есть все, кроме последней запятой.

Мои вопросы:

  1. Как вставить запятую в строку?
  2. Это лучшееспособ заменить текст в моих файлахили я должен получить к нему доступ другим способом?

1 Ответ

0 голосов
/ 03 ноября 2019
import glob
import os
import re
directory = 'test'
for filename in glob.glob(os.path.join(directory, '*.txt')):
    with open(filename, "r") as f:
        lines = f.read().splitlines()
        for line in lines:
            line = re.sub(r'B\d{1,}[\s+]0x','1,28,', line)
            line = line[:7] + ',' + line[7:]
            print(line)


Выход

1,28,04,0A43
1,28,6C, 00C8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...