Computer >> Máy Tính >  >> Lập trình >> Python

Tạo các tệp và thư mục tạm thời bằng Python

Tempfile mô-đun trong thư viện tiêu chuẩn xác định các chức năng để tạo các tệp và thư mục tạm thời. Chúng được tạo trong các thư mục tạm thời đặc biệt được xác định bởi hệ thống tệp của hệ điều hành. Ví dụ:trong Windows, thư mục tạm thời nằm trong profile / AppData / Local / Temp trong khi trong linux, các tệp tạm thời được giữ trong thư mục / tmp.

Các chức năng sau được định nghĩa trong mô-đun tempfile

TemporaryFile ()

Hàm này tạo một tệp tạm thời trong thư mục tạm thời và trả về một đối tượng tệp, tương tự như hàm open () tích hợp sẵn. Tệp được mở ở chế độ wb + theo mặc định, có nghĩa là nó có thể được sử dụng đồng thời để đọc / ghi dữ liệu nhị phân trong đó. Điều quan trọng, mục nhập của tệp trong thư mục tạm thời sẽ bị xóa ngay sau khi đối tượng tệp được đóng. Đoạn mã sau cho thấy cách sử dụng hàm TemporaryFile ().

>>> import tempfile
>>> f = tempfile.TemporaryFile()
>>> f.write(b'Welcome to TutorialsPoint')
>>> import os
>>> f.seek(os.SEEK_SET)
>>> f.read()
b'Welcome to TutorialsPoint'
>>> f.close()

Ví dụ sau sẽ mở đối tượng TemporaryFile ở chế độ w + để ghi và sau đó đọc dữ liệu văn bản thay vì dữ liệu nhị phân.

>>> ff = tempfile.TemporaryFile(mode = 'w+')
>>> ff.write('hello world')
>>> ff.seek(0)
>>> ff.read()
'hello world'
>>> ff.close()

NamedTemporaryFile ()

Hàm này tương tự như hàm TemporaryFile (). Sự khác biệt duy nhất là một tệp có tên tệp ngẫu nhiên sẽ hiển thị trong thư mục tạm thời được chỉ định của hệ điều hành. Tên có thể được truy xuất theo thuộc tính name của đối tượng tệp. Tệp này cũng sẽ bị xóa ngay sau khi đóng nó.

>>> fo = tempfile.NamedTemporaryFile()
>>> fo.name
'C:\\Users\\acer\\AppData\\Local\\Temp\\tmpipreok8q'
>>> fo.close()

TemporaryDirectory ()

Chức năng này tạo một thư mục tạm thời. Bạn có thể chọn vị trí của thư mục tạm thời này bằng cách đề cập đến tham số dir. Câu lệnh sau sẽ tạo một thư mục tạm thời trong thư mục C:\\ python36.

>>> f = tempfile.TemporaryDirectory(dir = "C:/python36")
<TemporaryDirectory 'C:/python36\\ tmp9wrjtxc_'>

Thư mục đã tạo xuất hiện trong thư mục dir1. Nó bị loại bỏ bằng cách gọi hàm cleanup () trên đối tượng thư mục.

>>> f.name
'C:/python36\\tmp9wrjtxc_'
>>> f.cleanup()

mkstemp ()

Chú ý này cũng tạo một tệp tạm thời, tương tự như hàm TemporaryFile (). Ngoài ra, các tham số hậu tố và tiền tố có sẵn để thêm vào tệp tạm thời được tạo. Không giống như trường hợp TemporaryFile (), tệp được tạo không tự động bị xóa. Nó phải được xóa theo cách thủ công.

>>> f = tempfile.mkstemp(suffix = '.tp')
C:\Users\acer\AppData\Local\Temp\tmpbljk6ku8.tp

mkdtemp ()

Hàm này cũng tạo một thư mục tạm thời trong thư mục tạm thời của hệ điều hành và trả về tên đường dẫn tuyệt đối của nó. Để xác định rõ ràng vị trí tạo ra nó, hãy sử dụng tham số dir. Thư mục này cũng không được tự động xóa.

>>> tempfile.mkdtemp(dir = "c:/python36")
'c:/python36\\tmpruxmm66u'

gettempdir ()

Hàm này trả về tên của thư mục để lưu trữ các tệp tạm thời. Tên này thường được lấy từ biến môi trường tempdir. Trên nền tảng Windows, nó thường là user / AppData / Local / Temp hoặc windowsdir / temp hoặc systemdrive / temp. Trên linux nó thường là / tmp. Thư mục này được sử dụng làm giá trị mặc định của tham số dir.

>>> tempfile.gettempdir()
'C:\\Users\\acer\\AppData\\Local\\Temp'

Trong bài viết này, các chức năng trong mô-đun tempfile đã được giải thích.