Tạo và lưu tệp trong thư mục mới bằng Python

Kinh doanh

Các phần sau giải thích cách tạo và lưu một tệp mới bằng Python bằng cách sử dụng một thư mục (thư mục) mới làm đích.

  • Lỗi khi chỉ định một thư mục không tồn tại với open ()(FileNotFoundError)
  • os.makedirs()Tạo một thư mục
  • Mã mẫu để tạo tệp mới với đích

Sau đây là một ví dụ về tệp văn bản.

Khi lưu trữ hình ảnh, tùy thuộc vào thư viện, liệu bạn có thể chỉ định một đường dẫn bao gồm một thư mục không tồn tại (hoặc nó sẽ tự động tạo một đường dẫn nếu nó không tồn tại).
FileNotFoundErrorNếu lỗi này xảy ra, bạn có thể tạo một thư mục mới với os.madeirs () trước khi thực thi hàm để lưu, như trong ví dụ sau.

Lỗi khi chỉ định một thư mục không tồn tại với open ()(FileNotFoundError)

Khi tạo tệp mới với hàm tích hợp open (), lỗi xảy ra nếu đường dẫn chứa thư mục mới (thư mục không tồn tại) được chỉ định làm đối số đầu tiên làm đích.(FileNotFoundError)

open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError

Đối số đầu tiên của open () có thể là một đường dẫn tuyệt đối hoặc một đường dẫn liên quan đến thư mục hiện tại.

Để biết cách sử dụng cơ bản của open (), chẳng hạn như tạo tệp mới trong thư mục hiện có, hoặc ghi đè hoặc thêm vào tệp hiện có, hãy tham khảo bài viết sau.

Tạo một thư mục(os.makedirs())

Khi tạo tệp mới trong thư mục không tồn tại, cần tạo thư mục trước open ().

Nếu bạn đang sử dụng Python 3.2 trở lên, sẽ thuận tiện hơn khi sử dụng os.makedirs () với đối số tồn tại_ok = True. Ngay cả khi thư mục đích đã tồn tại, sẽ không có lỗi nào xảy ra và có thể tạo thư mục ngay lập tức.

import os

os.makedirs(new_dir_path, exist_ok=True)

Nếu bạn có phiên bản Python cũ hơn và không có đối số being_ok trong os.makedirs (), bạn sẽ gặp lỗi nếu chỉ định đường dẫn đến một thư mục tồn tại, vì vậy hãy sử dụng os.path.exists () để kiểm tra sự tồn tại của thư mục đầu tiên.

if not os.path.exists(new_dir_path):
    os.makedirs(new_dir_path)

Xem chi tiết bài viết sau.

Mã mẫu để tạo tệp mới với đích

Sau đây là một ví dụ mã của một hàm tạo và lưu một tệp mới bằng cách chỉ định thư mục đích.

Đối số đầu tiên dir_path là đường dẫn của thư mục đích, tên tệp đối số thứ hai là tên của tệp mới sẽ được tạo và đối số thứ ba tệp_content là nội dung được ghi, mỗi đối số được chỉ định dưới dạng một chuỗi.

Nếu thư mục được chỉ định không tồn tại, hãy tạo một thư mục mới.

import os

def save_file_at_dir(dir_path, filename, file_content, mode='w'):
    os.makedirs(dir_path, exist_ok=True)
    with open(os.path.join(dir_path, filename), mode) as f:
        f.write(file_content)

Sử dụng như sau.

save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')

Trong trường hợp này, tệp new_file.txt có nội dung “văn bản mới” sẽ được tạo trong new_dir \ sub_dir. Nói cách khác, tệp sau sẽ được tạo mới.new_dir/sub_dir/new_file.txt

Nối tên thư mục và tệp với os.path.join ().

Ngoài ra, chế độ open () được chỉ định làm đối số. Đối với tệp văn bản, mặc định ‘w’ là được, nhưng nếu bạn muốn tạo tệp nhị phân, hãy đặt mode = ‘wb’.