Как автоматически удалить указанный символ c из текстового файла с помощью Python? - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь использовать небольшой код для проекта, чтобы взять комбинации набора буквенно-цифровых символов c и записать их в файл .txt. Когда я открываю файл со своего устройства, он показывает следующее:

[aaaa
[aaab
[aaac
...
]fh52
...

Код должен выводить только буквы и цифры, никаких других символов, и тем не менее, это все еще есть. Я могу иметь дело с файлом .txt, имеющим эти «артефакты», но мне нужен способ удаления этих артефактов с помощью Python в будущем.

Как я думаю, код должен выглядеть так:

unwanted_chars="[]"
datafile=open("Combinations.txt", 'a+')
for line in datafile:
    for char in line:
        if char in unwanted_chars:
            line.replace(char,"")

Любая помощь по этому поводу приветствуется.

1 Ответ

1 голос
/ 06 мая 2020

Вы близки. Во-первых, вам не нужен оператор if. Во-вторых, метод replace для str не изменяет элемент на месте, поэтому ваша последняя строка ничего не делает. Вам нужно будет прочитать файл, заменить символы, а затем записать его обратно.

with open('Combinations.text') as f:
    lines=list(f)
for k, line in enumerate(lines):
    for c in unwanted_chars:
        line=line.replace(c,'')
    lines[k]=line

with open('Combinations.text','w') as f:
    f.write('\n'.join(lines))
...