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

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

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

upd: в txt файле есть ограничение по символам как оказывается, какие есть решения?
Лучший ответ
Александр Искусственный Интеллект (294620) 1 год назад
скажи... а зачем объединять в один файл?...
Остальные ответы
Артем Лоули Знаток (294) 1 год назад
Для объединения всех файлов .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Знаток (318) 1 год назад
в общем сделал все немного проще, объединил все в один txt файл через командную строку, открыл с помощью Notepad++, избавился от лишнего текста, остались только ссылки на картинки их около 12000 есть ли какой-нибудь сторонний софт позволяющий скачать эти картинки в папку не открывая каждую ссылку в браузере и не сохраняя?
Александр Искусственный Интеллект (294620) sg st, как это так... скачать, но не сохраняя?...
Артем Лоули Знаток (294) 1 год назад
Отвечу, как полноценный ответ
Артем Лоули Знаток (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)
Иван Сигаев Искусственный Интеллект (151817) 1 год назад
copy nullfile+*.txt output.fil
nullfile - пустой файл ( либо любой из 6000, но тогда он задвоится )
output.fil - файл куда все "скопировать"
Professional Professional Мудрец (15767) 1 год назад
Ваша задача состоит из двух основных шагов:

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:
```
Похожие вопросы