Hướng dẫn trích xuất và thay thế URL từ tệp văn bản trong Python

Trong bài viết này, chúng ta sẽ tìm hiểu cách trích xuất các URL từ tệp văn bản và thay thế phần đuôi “/h120/” trong URL bằng “/s0/”. Chúng ta cũng sẽ trích xuất tên file từ các URL hình ảnh và ghi danh sách URL đã được thay thế và tên file vào một tệp CSV mới.

import re
import os
import csv

def extract_and_replace_urls(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        content = file.read()

    # Sử dụng biểu thức chính quy để trích xuất các URL có định dạng "https://lh3.googleusercontent.com/"
    urls = re.findall(r'https://lh3\.googleusercontent\.com/\S+', content)

    # Thay thế '/h120/' bằng '/s0/' trong các URL
    replaced_urls = [url.replace('/h120/', '/s0/') for url in urls]

    # Trích xuất tên file từ các URL hình ảnh (chỉ lấy phần tên tập tin mà không bao gồm đuôi tập tin)
    file_names = [os.path.splitext(os.path.basename(url))[0] for url in urls]

    return replaced_urls, file_names

def write_urls_to_csv(urls, file_names, output_file):
    with open(output_file, 'w', newline='', encoding='utf-8') as csvfile:
        csv_writer = csv.writer(csvfile)

        # Ghi tiêu đề cho các cột (đảo ngược thứ tự)
        csv_writer.writerow(['Tên tập tin', 'URL'])

        # Ghi dữ liệu vào từng hàng (đảo ngược thứ tự)
        for url, file_name in zip(urls, file_names):
            csv_writer.writerow([file_name, url])

# Gọi hàm để lấy danh sách các URL từ tệp văn bản và thay thế '/h120/' bằng '/s0/', và trích xuất tên file
input_file_path = 'list_of_image_urls.txt'  # Thay đổi đường dẫn tới tệp của bạn
replaced_urls, file_names = extract_and_replace_urls(input_file_path)

# Ghi danh sách các URL đã được thay thế và tên file vào một tệp CSV mới
output_file_path = 'replaced_urls.csv'  # Đặt tên và đường dẫn cho tệp CSV mới
write_urls_to_csv(replaced_urls, file_names, output_file_path)

print("Đã xuất danh sách URL đã thay thế và tên file vào tệp: ", output_file_path)

Để bắt đầu, chúng ta sẽ sử dụng các thư viện Python như re, oscsv để thực hiện công việc này.

Đầu tiên, chúng ta cần định nghĩa hai hàm:

  1. Hàm extract_and_replace_urls(file_path): Hàm này sẽ trích xuất và thay thế các URL từ tệp văn bản đầu vào. Sử dụng biểu thức chính quy, chúng ta sẽ lấy các URL có định dạng “https://lh3.googleusercontent.com/”. Sau đó, chúng ta sẽ thay thế phần “/h120/” trong URL bằng “/s0/”. Tiếp theo, chúng ta sẽ trích xuất tên file từ các URL hình ảnh và lưu vào một danh sách. Kết quả trả về của hàm này sẽ là danh sách các URL đã được thay thế và danh sách các tên file tương ứng.
  2. Hàm write_urls_to_csv(urls, file_names, output_file): Hàm này sẽ ghi danh sách các URL đã thay thế và tên file vào một tệp CSV mới. Chúng ta sẽ sử dụng thư viện csv để thực hiện việc này. Hàm này nhận ba đối số là danh sách các URL đã được thay thế, danh sách các tên file tương ứng và tên tệp CSV đầu ra.

Tiếp theo, chúng ta sẽ gọi hàm extract_and_replace_urls(file_path) với đường dẫn tới tệp văn bản chứa các URL. Sau đó, kết quả trả về sẽ chứa danh sách các URL đã được thay thế và danh sách các tên file.

Cuối cùng, chúng ta sẽ gọi hàm write_urls_to_csv(urls, file_names, output_file) để ghi danh sách các URL đã được thay thế và tên file vào một tệp CSV mới.

Bài viết này giúp bạn hiểu cách trích xuất và thay thế URL từ tệp văn bản trong Python một cách dễ dàng và tiện lợi. Nó có thể hữu ích khi bạn cần xử lý hàng loạt các URL hình ảnh từ tệp dữ liệu của mình. Hy vọng bạn sẽ tận dụng thành công thông tin từ bài viết này!

1 Lượt thích