Как написать только определенные строки файла (например, sed) в скрипте Python - PullRequest
0 голосов
/ 11 октября 2019

Я хотел бы иметь python для строк печати, которые попадают между двумя ключевыми словами. По сути, автоматизируйте процесс создания n страниц с информацией, а затем с помощью sed обрежьте все ненужные строки. Я хотел бы воспроизвести функциональность sed внутри моего python for loop, чтобы печатались только строки в определенном диапазоне.

import re
import subprocess
from bs4 import BeautifulSoup

def function():
    for i in range(0, 22):
        url = "http://www.82games.com/1819/18ATL{}.HTM#bypos".format(i)
        page = requests.get(url)
        soup = BeautifulSoup(page.text, 'html.parser')
        cleantext = BeautifulSoup(page.text, "html.parser").text
        text = str(soup)
        print(type(text))
        print(str(cleantext))
        a = str(cleantext)
        ans = remove(text)
        f = open('results{}.txt'.format(i),'a')

        f.write(a + '\n')
        subprocess.call(['sed', '-i', '/Production By Postion,/Opponent Counterpart 48-Minute Production/d', 'new.txt'])
    f.close()
    return ans

def remove(string): 
    return "".join(string.split())



def cleanhtml(raw_html):
    cleanr = re.compile('<.*?>|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});')
    cleantext = re.sub(cleanr, '', raw_html)
    return cleantext

if __name__ == '__main__':
    function()


# sed -i '/Production By Postion,/Opponent Counterpart 48-Minute Production/d' newfile.txt 
...