Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как объединить 6000 txt файлов в один и выгрузить с него ссылки?

sg st Знаток (312), закрыт 9 месяцев назад
Скачал архив данных в вк, с диалога вытащил около 6000 файлов формата html в каждом по 50 сообщений, которые видно в формате txt, поэтому поменял все файлы в формат txt. Как объеденить эти 6000 файлов txt в один и вытащить с него ссылки формата: https://sun9-65.userapi.com/ ... Очень хочется посмотреть и найти нужные фотографии, но лень листать месяцами.

upd: в txt файле есть ограничение по символам как оказывается, какие есть решения?
Лучший ответ
Александр Искусственный Интеллект (290692) 10 месяцев назад
скажи... а зачем объединять в один файл?...
Остальные ответы
Артем Лоули Знаток (294) 10 месяцев назад
Для объединения всех файлов .txt в один файл и поиска ссылок формата 'ваша ссылка' вам потребуется использовать язык программирования, такой как Python, и некоторый код для обработки файлов.



Вот пример кода на Python, который может помочь вам выполнить задачу:





Copy code

import os

import re



# Путь к папке с файлами .txt

folder_path = "путь_к_папке"



# Создание пустого файла для объединения

output_file = "output.txt"



# Обход всех файлов .txt в папке

with open(output_file, "w", encoding="utf-8") as outfile:

for filename in os.listdir(folder_path):

if filename.endswith(".txt"):

file_path = os.path.join(folder_path, filename)

with open(file_path, "r", encoding="utf-8") as infile:

content = infile.read ()

outfile.write(content)



# Чтение объединенного файла и поиск ссылок

with open(output_file, "r", encoding="utf-8") as file:

text = file.read ()

# Поиск ссылок формата "ваша ссылка"

urls = re.findall(r"ваша ссылка ", text)



# Вывод найденных ссылок

for url in urls:

print(url)

В этом коде мы проходим по всем файлам .txt в указанной папке, объединяем их содержимое в один файл с именем "output.txt". Затем мы читаем содержимое объединенного файла и используем регулярное выражение для поиска ссылок в нужном формате. Найденные ссылки выводятся на экран.



Что касается ограничения на количество символов в текстовом файле, вы можете столкнуться с проблемой, если тексты очень большие. В таком случае, вам может понадобиться обработка файлов порциями или использование специальных методов работы с большими файлами. Если вы столкнетесь с ограничениями, сообщите об этом, и я могу предложить дополнительные решения или подходы к этой проблеме.
sg stЗнаток (312) 10 месяцев назад
в общем сделал все немного проще, объединил все в один txt файл через командную строку, открыл с помощью Notepad++, избавился от лишнего текста, остались только ссылки на картинки их около 12000 есть ли какой-нибудь сторонний софт позволяющий скачать эти картинки в папку не открывая каждую ссылку в браузере и не сохраняя?
Александр Искусственный Интеллект (290692) sg st, как это так... скачать, но не сохраняя?...
Артем Лоули Знаток (294) 10 месяцев назад
Отвечу, как полноценный ответ
Артем Лоули Знаток (294) Copy code import requests def download_images_from_file(file_path, output_directory): with open(file_path, 'r') as file: lines = file.readlines() for line in lines: image_url = line.strip() response = requests.get(image_url) if response.status_code == 200: image_name = image_url.split('/')[-1] output_path = output_directory + '/' + image_name with open(output_path, 'wb') as output_file: output_file.write(response.content) print(f"Скачано : {image_name}") else: print(f"Нот: {image_url}") file_path = 'путь_к_файлу.txt' output_directory = 'путь_к_папке' download_images_from_file(file_path, output_directory)
Иван Сигаев Искусственный Интеллект (150160) 10 месяцев назад
copy nullfile+*.txt output.fil
nullfile - пустой файл ( либо любой из 6000, но тогда он задвоится )
output.fil - файл куда все "скопировать"
Professional Professional Мудрец (15212) 10 месяцев назад
Ваша задача состоит из двух основных шагов:

1. Объединить все txt файлы в один.
2. Извлечь из него все URL-адреса, которые соответствуют определенному шаблону.

Сначала давайте объединим все файлы в один. Вы можете сделать это с помощью следующего кода на Python:

```python
import glob

read_files = glob.glob("*.txt") # Меняем на путь к вашим txt файлам, если они в другом месте

with open("merged.txt", "wb") as outfile:
for f in read_files:
with open(f, "rb") as infile:
outfile.write(infile.read())
```

Теперь у нас есть один объединенный файл `merged.txt`. Теперь нужно извлечь из него ссылки. Можно использовать модуль `re` для поиска регулярными выражениями. Для поиска ссылок формата `https://sun9-65.userapi.com/` можно использовать следующий код:

```python
import re

with open('merged.txt', 'r') as f:
data = f.read()
urls = re.findall('https://sun9-65.userapi.com/\S+', data)

for url in urls:
print(url)
```

После выполнения этих двух шагов вы должны получить все ссылки формата `https://sun9-65.userapi.com/` из ваших файлов.

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

Также, если ваши файлы содержат кодировки отличные от UTF-8, вы можете добавить кодировку при открытии файла:

```python
with open(f, "rb", encoding='utf8') as infile:
```
Похожие вопросы