Как извлечь определенный фрагмент строки из txt или html файла, если известно его уникальное содержание?

  • 24 августа 2023 г. 11:56
Ответы на вопрос 2
Если вам нужно извлечь определенный фрагмент строки из текстового файла, вы можете воспользоваться следующим кодом:

```python
file_path = "your_file.txt"  # путь к вашему текстовому файлу

with open(file_path, "r") as f:
    lines = f.readlines()

for line in lines:
    if "your_unique_content" in line:
        # Найдена строка с вашим уникальным содержанием
        fragment = line.split("your_unique_content")[1]
        print(fragment)
        break
```

В этом примере мы открываем текстовый файл, считываем его содержимое и пробегаемся по каждой строке. Если в строке содержится ваше уникальное содержание, мы разбиваем строку по вашему уникальному содержанию и извлекаем фрагмент строки после него. Затем мы выводим этот фрагмент и останавливаемся (используя `break`), так как мы предполагаем, что уникальное содержание встречается только один раз.

Если вам нужно извлечь определенный фрагмент строки из HTML-файла, вы можете воспользоваться библиотекой BeautifulSoup. Вот пример кода:

```python
from bs4 import BeautifulSoup

file_path = "your_html_file.html"  # путь к вашему HTML-файлу

with open(file_path, "r") as f:
    contents = f.read()

soup = BeautifulSoup(contents, "html.parser")

# Найти все элементы с тегом "KEY"
elements = soup.find_all("KEY")

for element in elements:
    fragment = element.get_text()
    print(fragment)
```

В этом примере мы открываем HTML-файл, считываем его содержимое и создаем объект BeautifulSoup. Затем мы используем метод `find_all` для поиска всех элементов с тегом "KEY" и для каждого элемента извлекаем его текстовое содержимое с помощью `get_text()`.
from bs4 import BeautifulSoup

html = '''
KEY0
KEY1
'''

bs = BeautifulSoup(html, 'html.parser')

# Перебираем все элементы 'a' внутри 'tr'
for item in bs.find_all('a'):
    value = item.get('href')
    
    # Проверяем, что значение начинается с "#"
    if value and value.startswith("#"):
        print(item.text)  # KEY

text = '''
    First,
    This is second,
    third
'''

soup = BeautifulSoup(text,'html.parser')

# Создаем список, содержащий текст всех элементов 'a' внутри 'tr'
result = [row.a.text for row in soup.find_all('tr')]
print(result)
Похожие вопросы