Mã nguồn: lib/tempfile.py Lib/tempfile.py Show
Mô -đun này tạo ra các tập tin và thư mục tạm thời. Nó hoạt động trên tất cả các nền tảng được hỗ trợ. Tất cả các chức năng và trình xây dựng có thể gọi người dùng đều có các đối số bổ sung cho phép kiểm soát trực tiếp vị trí và tên của các tệp và thư mục tạm thời. Tên các tệp được sử dụng bởi mô -đun này bao gồm một chuỗi các ký tự ngẫu nhiên cho phép các tệp đó được tạo an toàn trong các thư mục tạm thời được chia sẻ. Để duy trì khả năng tương thích ngược, thứ tự đối số có phần kỳ lạ; Nên sử dụng các đối số từ khóa để rõ ràng. Mô-đun xác định các mục có thể gọi người dùng sau: tempfile.temdyfile (mode = 'w+b', buffering = -1, mã hóa = không, newline = none, hậu tố = không, tiền tố = khôngTemporaryFile(mode='w+b', buffering=- 1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, *, errors=None)¶Trả về một đối tượng giống như tệp có thể được sử dụng làm khu vực lưu trữ tạm thời. Tệp được tạo an toàn, sử dụng các quy tắc tương tự như Đối tượng kết quả có thể được sử dụng làm trình quản lý ngữ cảnh (xem ví dụ). Khi hoàn thành bối cảnh hoặc phá hủy đối tượng tệp, tệp tạm thời sẽ bị xóa khỏi hệ thống tập tin.Examples). On completion of the context or destruction of the file object the temporary file will be removed from the filesystem. Tham số chế độ mặc định là >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False0. Các tham số DIR, tiền tố và hậu tố có cùng ý nghĩa và mặc định như với Đối tượng được trả về là một đối tượng tệp thực trên các nền tảng POSIX. Trên các nền tảng khác, nó là một đối tượng giống như tệp có thuộc tính >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False2 là đối tượng tệp thực cơ bản. Cờ >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False3 được sử dụng nếu nó có sẵn và hoạt động (đặc trưng của Linux, yêu cầu nhân Linux 3.11 trở lên). Trên các nền tảng không phải là POSIX hay Cygwin, TemplayFile là bí danh của tên được đặt tên. Tăng một sự kiện kiểm toán >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False4 với đối số >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5.auditing event >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False4 with argument >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5. Đã thay đổi trong phiên bản 3.5: cờ >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False3 flag is now used if available. Đã thay đổi trong phiên bản 3.8: Đã thêm tham số lỗi.Added errors parameter. Tempfile.namedTeMdyFile (mode = 'w+b', buffering = -1, expoding = none, newline = noneNamedTemporaryFile(mode='w+b', buffering=- 1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, delete=True, *, errors=None)¶Hàm này hoạt động chính xác như >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False7, ngoại trừ tệp được đảm bảo có tên hiển thị trong hệ thống tệp (trên Unix, mục nhập thư mục không được liên kết). Tên đó có thể được lấy từ thuộc tính >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False8 của đối tượng giống như tệp được trả về. Liệu tên có thể được sử dụng để mở tệp lần thứ hai hay không, trong khi tệp tạm thời được đặt tên vẫn còn mở, thay đổi giữa các nền tảng (nó có thể được sử dụng trên Unix; nó không thể trên Windows). Nếu xóa là đúng (mặc định), tệp sẽ bị xóa ngay khi đóng. Đối tượng được trả về luôn là một đối tượng giống như tệp có thuộc tính >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False2 là đối tượng tệp thực cơ bản. Đối tượng giống như tệp này có thể được sử dụng trong câu lệnh TemporaryFile 0, giống như một tệp thông thường.Trên POSIX (chỉ), một quy trình bị chấm dứt đột ngột với Sigkill không thể tự động xóa bất kỳ tên gọi nào mà nó tạo ra. Tăng một sự kiện kiểm toán >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False4 với đối số >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5.auditing event >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False4 with argument >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5. Đã thay đổi trong phiên bản 3.8: Đã thêm tham số lỗi.Added errors parameter. Tempfile.namedTeMdyFile (mode = 'w+b', buffering = -1, expoding = none, newline = none tempfile.SpooledTemporaryFile(max_size=0, mode='w+b', buffering=- 1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, *, errors=None)¶Hàm này hoạt động chính xác như >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False7, ngoại trừ tệp được đảm bảo có tên hiển thị trong hệ thống tệp (trên Unix, mục nhập thư mục không được liên kết). Tên đó có thể được lấy từ thuộc tính >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False8 của đối tượng giống như tệp được trả về. Liệu tên có thể được sử dụng để mở tệp lần thứ hai hay không, trong khi tệp tạm thời được đặt tên vẫn còn mở, thay đổi giữa các nền tảng (nó có thể được sử dụng trên Unix; nó không thể trên Windows). Nếu xóa là đúng (mặc định), tệp sẽ bị xóa ngay khi đóng. Đối tượng được trả về luôn là một đối tượng giống như tệp có thuộc tính >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False2 là đối tượng tệp thực cơ bản. Đối tượng giống như tệp này có thể được sử dụng trong câu lệnh TemporaryFile 0, giống như một tệp thông thường.Trên POSIX (chỉ), một quy trình bị chấm dứt đột ngột với Sigkill không thể tự động xóa bất kỳ tên gọi nào mà nó tạo ra. classtempfile.spooledtemdyfile (max_size = 0, mode = 'w+b', buffering = -1, expoding = none, newline = none, hậu tố = không, tiền tố = không, dir = none, Đã thay đổi trong phiên bản 3.3: Phương thức cắt ngắn hiện chấp nhận đối số Đã thay đổi trong phiên bản 3.8: Đã thêm tham số lỗi.Added errors parameter. Đã thay đổi trong phiên bản 3.11: Thực hiện đầy đủ các lớp cơ sở trừu tượng và Lớp này một cách an toàn tạo ra một thư mục tạm thời bằng cách sử dụng các quy tắc tương tự như Tên thư mục có thể được lấy từ thuộc tính >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False8 của đối tượng được trả về. Khi đối tượng được trả về được sử dụng làm Trình quản lý ngữ cảnh, >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False8 sẽ được gán cho mục tiêu của mệnh đề NamedTemporaryFile 8 trong câu lệnh TemporaryFile 0, nếu có.Thư mục có thể được làm sạch rõ ràng bằng cách gọi phương thức Tăng một sự kiện kiểm toán >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5.auditing event TemporaryDirectory 3 with argument >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5. Mới trong phiên bản 3.2. Đã thay đổi trong phiên bản 3.10: Đã thêm tham số bỏ qua_cleanup_errors.Added ignore_cleanup_errors parameter. tempfile.mkstemp (hậu tố = không, tiền tố = none, dir = none, text = false) ¶mkstemp(suffix=None, prefix=None, dir=None, text=False)¶Tạo một tập tin tạm thời theo cách an toàn nhất có thể. Không có điều kiện đua trong việc tạo tệp, giả sử rằng nền tảng thực hiện đúng cờ Không giống như >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False7, người dùng của mkstemp() chịu trách nhiệm xóa tệp tạm thời khi thực hiện với nó.Nếu hậu tố không phải là Nếu tiền tố không phải là Nếu dir không phải là Nếu bất kỳ hậu tố, tiền tố và dir không phải là Nếu văn bản được chỉ định và đúng, tệp được mở ở chế độ văn bản. Mặt khác, (mặc định) tệp được mở ở chế độ nhị phân.
Tăng một sự kiện kiểm toán >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False4 với đối số >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5.auditing event >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False4 with argument >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5. Đã thay đổi trong phiên bản 3.5: Hậu tố, tiền tố và dir hiện có thể được cung cấp theo byte để có được giá trị trả về byte. Trước đó, chỉ có STR được phép. Hậu tố và tiền tố hiện chấp nhận và mặc định là Đã thay đổi trong phiên bản 3.6: Tham số Dir hiện chấp nhận một đối tượng giống như đường dẫn.The dir parameter now accepts a path-like object. tempfile.mkdtemp (hậu tố = không, tiền tố = không, dir = none) ¶mkdtemp(suffix=None, prefix=None, dir=None)¶Tạo một thư mục tạm thời theo cách an toàn nhất có thể. Không có điều kiện chủng tộc trong việc tạo thư mục. Thư mục có thể đọc được, có thể ghi và chỉ có thể tìm kiếm bằng ID người dùng tạo. Người dùng của Tiền tố, hậu tố và đối số DIR giống như đối với
Tăng một sự kiện kiểm toán >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5.auditing event TemporaryDirectory 3 with argument >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False5. Đã thay đổi trong phiên bản 3.5: Hậu tố, tiền tố và dir hiện có thể được cung cấp theo byte để có được giá trị trả về byte. Trước đó, chỉ có STR được phép. Hậu tố và tiền tố hiện chấp nhận và mặc định là Đã thay đổi trong phiên bản 3.6: Tham số Dir hiện chấp nhận một đối tượng giống như đường dẫn.The dir parameter now accepts a path-like object. tempfile.gettempdir () ¶gettempdir()¶Trả về tên của thư mục được sử dụng cho các tệp tạm thời. Điều này xác định giá trị mặc định cho đối số DIR cho tất cả các hàm trong mô -đun này. Python tìm kiếm một danh sách tiêu chuẩn các thư mục để tìm một danh sách mà người dùng gọi có thể tạo tệp. Danh sách là:
Kết quả của tìm kiếm này được lưu trữ, xem mô tả của Đã thay đổi trong phiên bản 3.10: Luôn trả về STR. Trước đây, nó sẽ trả về bất kỳ giá trị Giống như Mới trong phiên bản 3.5. tempfile.gettempprefix () ¶gettempprefix()¶Trả về tiền tố tệp được sử dụng để tạo các tệp tạm thời. Điều này không chứa thành phần thư mục. tempfile.gettempprefixb () ¶gettempprefixb()¶Giống như Mới trong phiên bản 3.5. tempfile.gettempprefix () ¶ Trả về tiền tố tệp được sử dụng để tạo các tệp tạm thời. Điều này không chứa thành phần thư mục.tempdir¶tempfile.gettempprefixb () ¶path-like object. Giống như Mô -đun sử dụng biến toàn cầu để lưu trữ tên của thư mục được sử dụng cho các tệp tạm thời được trả về bởi tempfile.tempdir¶ Khi được đặt thành một giá trị khác với TemporaryDirectory9, biến này xác định giá trị mặc định cho đối số DIR cho các hàm được xác định trong mô -đun này, bao gồm loại, byte hoặc str. Nó không thể là một đối tượng giống như đường dẫn.Nếu >>> import tempfile # create a temporary file and write some data to it >>> fp = tempfile.TemporaryFile() >>> fp.write(b'Hello world!') # read data from file >>> fp.seek(0) >>> fp.read() b'Hello world!' # close the file, it will be removed >>> fp.close() # create a temporary file using a context manager >>> with tempfile.TemporaryFile() as fp: ... fp.write(b'Hello world!') ... fp.seek(0) ... fp.read() b'Hello world!' >>> # file is now closed and removed # create a temporary directory using the context manager >>> with tempfile.TemporaryDirectory() as tmpdirname: ... print('created temporary directory', tmpdirname) >>> # directory and contents have been removed Ghi chúHãy coi chừng nếu bạn đặt Dưới đây là một số ví dụ về cách sử dụng điển hình của mô -đun Chức năng và biến không dùng nữa Một cách lịch sử để tạo các tệp tạm thời là trước tiên tạo tên tệp với hàm tempfile.mktemp (hậu tố = '', tiền tố = 'tmp', dir = none) ¶ >>> f = NamedTemporaryFile(delete=False) >>> f.name '/tmp/tmptjujjt' >>> f.write(b"Hello World!\n") 13 >>> f.close() >>> os.unlink(f.name) >>> os.path.exists(f.name) False Làm cách nào để tạo một tệp chỉ mục tạm thời trong Python?Chúng ta có thể tạo một tệp tạm thời một cách an toàn bằng cách sử dụng mkstemp (). Tệp được tạo bởi phương thức này chỉ có thể đọc được và có thể ghi bởi người dùng tạo. Chúng ta có thể thêm các tham số tiền tố và hậu tố như trong catedTemdyFile (). Chế độ mặc định là nhị phân, nhưng chúng ta có thể mở nó ở chế độ văn bản bằng cách đặt tham số 'văn bản' là đúng.using mkstemp(). The file created by this method is readable and writable only by the creating user. We can add prefix and suffix parameters like in NamedTemporaryFile(). The default mode is binary, but we can open it in text mode by setting 'text' parameter as True.
Python lưu trữ các tệp tạm thời ở đâu?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, thông thường là người dùng/appdata/local/temp hoặc windowsdir/temp hoặc systemdrive/temp.Trên Linux, nó thường là /TMP.
Làm cách nào để tạo một tệp tạm thời?Để chèn một tên tệp tạm thời mới:.. Trong một hành động ghi vào tệp trong một bước, nhấp chuột phải vào trường tệp .. Nhấp vào Tên tệp> Tên tệp mới.Cửa sổ thuộc tính FileName Mở .. Xác định các thuộc tính cho tệp tạm thời: Tên: Cung cấp tên cho tệp tạm thời (ví dụ: báo cáo)..... Bấm OK .. Tempfile mkdtemp trở lại là gì?Người dùng mkdtemp () chịu trách nhiệm xóa thư mục tạm thời và nội dung của nó khi thực hiện với nó.Tiền tố, hậu tố và đối số DIR giống như đối với mkstemp ().mkdtemp () trả về tên đường dẫn tuyệt đối của thư mục mới.the absolute pathname of the new directory. |