Скачал архив данных в вк, с диалога вытащил около 6000 файлов формата html в каждом по 50 сообщений, которые видно в формате txt, поэтому поменял все файлы в формат txt. Как объеденить эти 6000 файлов txt в один и вытащить с него ссылки формата: https://sun9-65.userapi.com/ ... Очень хочется посмотреть и найти нужные фотографии, но лень листать месяцами.
upd: в txt файле есть ограничение по символам как оказывается, какие есть решения?
Python
Как объединить 6000 txt файлов в один и выгрузить с него ссылки?
скажи... а зачем объединять в один файл?...
copy nullfile+*.txt output.fil
nullfile - пустой файл ( либо любой из 6000, но тогда он задвоится )
output.fil - файл куда все "скопировать"
nullfile - пустой файл ( либо любой из 6000, но тогда он задвоится )
output.fil - файл куда все "скопировать"
Ваша задача состоит из двух основных шагов:
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:
```
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:
```
Для объединения всех файлов .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". Затем мы читаем содержимое объединенного файла и используем регулярное выражение для поиска ссылок в нужном формате. Найденные ссылки выводятся на экран.
Что касается ограничения на количество символов в текстовом файле, вы можете столкнуться с проблемой, если тексты очень большие. В таком случае, вам может понадобиться обработка файлов порциями или использование специальных методов работы с большими файлами. Если вы столкнетесь с ограничениями, сообщите об этом, и я могу предложить дополнительные решения или подходы к этой проблеме.
Вот пример кода на 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". Затем мы читаем содержимое объединенного файла и используем регулярное выражение для поиска ссылок в нужном формате. Найденные ссылки выводятся на экран.
Что касается ограничения на количество символов в текстовом файле, вы можете столкнуться с проблемой, если тексты очень большие. В таком случае, вам может понадобиться обработка файлов порциями или использование специальных методов работы с большими файлами. Если вы столкнетесь с ограничениями, сообщите об этом, и я могу предложить дополнительные решения или подходы к этой проблеме.
Саша Петров
в общем сделал все немного проще, объединил все в один txt файл через командную строку, открыл с помощью Notepad++, избавился от лишнего текста, остались только ссылки на картинки их около 12000 есть ли какой-нибудь сторонний софт позволяющий скачать эти картинки в папку не открывая каждую ссылку в браузере и не сохраняя?
Андрей Кучеров
Отвечу, как полноценный ответ
Похожие вопросы
- Нужно из двух .txt файлов выделить в два .txt файла повторы и уникальные
- Python перестал распознавать русский в TXT файлах, что делать?
- Дан текстовый файл input.txt...
- Есть два файла .txt нужно сопоставить данные и вытащить актуальные
- Есть люди отлично знающие python? Помогите распарсить txt файлик.
- Можете помочь! Нужен код для Python, что бы он заменял определенный текст в файле
- Как подключить файл к другому файлу в питоне
- Задача для Python. Работа с массивом чисел в файле.
- Как сделать из python файла exe файл без потери скорости
- Python: как в файле json найти строки по заданному тексту и скопировать рядом стоящую строку