Использование python для удаления фразы в кучу файлов - PullRequest
0 голосов
/ 26 сентября 2018

У меня 29 файлов .srt.Все они содержат HTML-код, такой как <font color="#E5E5E5">, <font color="#CCCCCC"> и </font>.Я хочу удалить все эти HTML-коды из этих 29 файлов.Но я не знаю, как это сделать сразу.Я приложил код, который я использую прямо сейчас в вопросе.Но он может изменить только один файл одновременно, и он оставляет мне 3 бесполезных файла.Может ли кто-нибудь помочь мне с этим?

    import re

    string = open('/Users/Cynthia/Desktop/Jeunesse/Longivity English/Jeunesse 
    Longevity TV - Episode 27 - Lifestyle - PART 4 - Healthy Nutrition 2 
    2.en.transcribed.txt').read()
    new_str = re.sub('<font color="#CCCCCC">', ' ', string)
    open('b.txt', 'w').write(new_str)

    string = open('/Users/Cynthia/Desktop/Jeunesse/Longivity 
    English/b.txt').read()
    new_str = re.sub('<font color="#E5E5E5">', ' ', string)
    open('c.txt', 'w').write(new_str)

    string = open('/Users/Cynthia/Desktop/Jeunesse/Longivity 
    English/c.txt').read()
    new_str = re.sub('</font>', ' ', string)
    open('d.txt', 'w').write(new_str)

1 Ответ

0 голосов
/ 26 сентября 2018

вот удобный способ для начинающих использовать функцию для работы с одним файлом.Он объединяет ваш код и записывает результат в новый файл.

Так что вам нужно всего лишь один раз вызвать strip_html для каждого файла с именем файла и именем для нового файла.

В этом примере есть список имен файлов, и он запишет фиксированный файл со словом «.fixed» в конце.

Обратите внимание, что это простой способ сделать это, иЯ упустил много вещей, чтобы это было легко понять.Как только вы поймете больше о программировании, вы найдете гораздо лучшие способы.Но вы должны заставить это работать.

import re

def strip_html(filename, newfilename):
    with open(filename) as f1:
        string = f1.read()
        new_str = re.sub('<font color="#CCCCCC">', ' ', string)
        new_str = re.sub('<font color="#E5E5E5">', ' ', new_str)
        new_str = re.sub('</font>', ' ', new_str)
        with open(newfilename, 'w') as w1:
            w1.write(new_str)

files = ['/Users/Cynthia/Desktop/Jeunesse/Longivity English/Jeunesse 
Longevity TV - Episode 27 - Lifestyle - PART 4 - Healthy Nutrition 2 
2.en.transcribed.txt',
'/Users/Cynthia/Desktop/Jeunesse/Longivity English/Jeunesse 
Longevity TV - Episode 28 - Lifestyle - PART 1 - Healthy Nutrition 3 
2.en.transcribed.txt'
]

for file in files:  
    strip_html(file, file + '.fixed')

Надеюсь, это поможет.

Когда вы запустите это, посмотрите на команду os.listdir (), чтобы узнать, как получить списокимен файлов из каталога вместо записи их здесь в коде.

...