Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

Bạn có thể sử dụng nhiều cách để tạo một tệp nếu nó không tồn tại. Cách phổ biến nhất là sử dụng hàm Open () và vượt qua các chế độ khác nhau theo yêu cầu của bạn. Các cách khác đang sử dụng mô -đun Pathlib hoặc mô -đun HĐH và kiểm tra điều kiện hiện có của tệp. Trong hướng dẫn này, chúng tôi sẽ sử dụng phương pháp mở () và cách tiếp cận mô -đun pathlib.In this tutorial, we will use the open() method approach and the pathlib module’s approach.

Để tạo một tệp nếu không tồn tại trong Python, hãy sử dụng hàm Open (). Open () là hàm Python tích hợp mở tệp và trả về nó dưới dạng đối tượng tệp. Open () lấy đường dẫn tệp và chế độ làm đầu vào và trả về đối tượng tệp làm đầu ra.

Cú pháp của Open ()

open(file, mode)

Tranh luận

Tệp: Đó là đường dẫn và tên của một tệp. It is the path and name of a file.

Chế độ: & nbsp; hàm open () có một trong các chế độ sau.The open() function takes one of the following modes.

  1. W: Nó là cho chế độ ghi.: It is for write mode.
  2. R: Nó dành cho chế độ đọc.: It is for reading mode.
  3. A: Nó dành cho chế độ phụ lục.: It is for append mode.
  4. W+: Tạo tệp nếu nó không tồn tại và sau đó mở nó ở chế độ ghi.: Create the file if it does not exist and then open it in write mode.
  5. R+: Mở tệp trong chế độ đọc và ghi.: Open the file in the read and write mode.
  6. A+: Tạo tệp nếu nó không tồn tại và mở nó ở chế độ nối.: Create the file if it does not exist and open it in append mode.

Đây là các chế độ khác nhau bạn có thể sử dụng trong khi tạo một tệp mới.

Nếu bạn chuyển A+, hãy thêm văn bản vào tệp hoặc tạo nó trước nếu nó không tồn tại.a+, add the text to the file or create it first if it does not exist.

Chế độ W+ sẽ cắt giảm tệp và sau đó mở nó ở chế độ ghi, vì vậy nếu chúng ta không muốn tệp được cắt, chúng ta nên sử dụng chế độ A+.w+ mode will truncate the file and then open it in write mode, so if we do not want the file to be trimmed, we should use the a+ mode.

file = open('data.py','a+')

Nếu bạn chạy mã trên, nó sẽ tạo một tệp có tên & nbsp; data.py. Tệp không tồn tại trước đây, nhưng nó đã tạo sau khi chúng tôi chạy mã. Nếu tệp tồn tại và đã có nội dung, thì A+ won đã xóa nội dung.data.py. The file did not exist previously, but it has created after we ran the code. If the file exists and already has content, then a+ won’t remove the content.

Để cắt giảm tệp trong khi tạo tệp mới, hãy sử dụng chế độ W+ trong hàm Open ().w+ mode in the open() function.

Chúng tôi viết một số mã bên trong tệp data.py và sau đó chạy tệp app.py có chế độ W+.data.py file and then run the app.py file with w+ mode.

file = open('data.py','w+')

Nếu bạn chạy mã trên, nó sẽ cắt tệp.

W cắt cụt tệp hiện có. Tài liệu: Các chế độ ‘R+,‘ W+, và ‘A+Mở tệp để cập nhật.

Một điều cần lưu ý là A+ tạo một tệp nếu nó không tồn tại và, chủ yếu, tìm kiếm tệp đến cuối. Vì vậy, nếu bạn đọc ngay sau khi mở theo cách này, bạn sẽ không nhận được gì.

Tạo tệp nếu nó không tồn tại bằng cách sử dụng touch ()

Có một cách nữa để tạo một tệp nếu nó không tồn tại bằng phương thức Touch () của mô -đun pathlib & nbsp; Phương thức Path.Touch () tạo tệp tại đường dẫn được chỉ định.pathlib module. The path.touch() method creates the file at the specified path.

from pathlib import Path

fle = Path('data.py')
fle.touch(exist_ok=True)
f = open(fle)

Nếu tập tin đã tồn tại, thì nó đã giành được bất cứ điều gì. Nếu không, nó sẽ tạo một tệp mới.

Đó là nó cho hướng dẫn này.

Xem thêm

Tệp Python đọc

Python grep

Xử lý tập tin Python

871

Vấn đề này dễ dàng được giải quyết bằng cách sử dụng chế độ X ít được biết đến để mở () thay vì chế độ W thông thường. Ví dụ:
Learn more.

Nếu tệp là chế độ nhị phân, hãy sử dụng chế độ XB thay vì XT.

Đã trả lời ngày 14 tháng 12 năm 2017 lúc 13:58

Đã trả lời ngày 8 tháng 8 năm 2018 lúc 5:45

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.

Cách tốt nhất để mở một tệp như đọc/ghi nếu nó tồn tại, hoặc nếu nó không, sau đó tạo nó và mở nó dưới dạng đọc/viết? Từ những gì tôi đọc,

file = open('data.py','w+')
0 nên làm điều này, phải không?

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

Tế bào thần kinh

4.6424 Huy hiệu vàng32 Huy hiệu bạc53 Huy hiệu Đồng4 gold badges32 silver badges53 bronze badges

Đã trả lời ngày 22 tháng 6 năm 2013 lúc 12:16Jun 3, 2010 at 15:05

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

3

Bạn muốn làm gì với tệp? Chỉ viết cho nó hoặc cả đọc và viết?

file = open('myfile.dat', 'w+')

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

from pathlib import Path

fle = Path('data.py')
fle.touch(exist_ok=True)
f = open(fle)
2,
from pathlib import Path

fle = Path('data.py')
fle.touch(exist_ok=True)
f = open(fle)
3 sẽ cho phép ghi và sẽ tạo tệp nếu nó không tồn tại.

Nếu bạn cần đọc từ một tệp, tệp phải tồn tại trước khi mở nó. Bạn có thể kiểm tra sự tồn tại của nó trước khi mở hoặc sử dụng thử/ngoại trừ.10 gold badges117 silver badges138 bronze badges

Đã trả lời ngày 3 tháng 6 năm 2010 lúc 15:12Jun 3, 2010 at 15:12

Baloobaloomuksie

7.5174 Huy hiệu vàng25 Huy hiệu bạc35 Huy hiệu Đồng1 gold badge18 silver badges14 bronze badges

9

Vì Python 3.4, bạn nên sử dụng

file = open('data.py','w+')
4 để "chạm vào". Đó là một giải pháp thanh lịch hơn nhiều so với những giải pháp được đề xuất trong chủ đề này.properly closed at the block's end, even if an exception is raised on the way. It's equivalent to
file = open('data.py','w+')
3, but much shorter.

with open("file.dat","a+") as f:
    f.write(...)
    ...

A+ mở một tập tin cho cả nối tiếp và đọc. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Tệp mở trong chế độ phụ lục. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để đọc và ghi. Chế độ tệp -Python Opens a file for both appending and reading. The file pointer is at the end of the file if the file exists. The file opens in the append mode. If the file does not exist, it creates a new file for reading and writing. -Python file modes

Phương thức Seek () đặt vị trí hiện tại của tệp.

f.seek(pos [, (0|1|2)])
pos .. position of the r/w pointer
[] .. optionally
() .. one of ->
  0 .. absolute position
  1 .. relative position to current
  2 .. relative position from end

Chỉ được phép các ký tự "RWAB+"; Phải có chính xác một trong những "RWA" - xem Stack & nbsp; Overflow Câu hỏi chi tiết chế độ tệp Python.

Đã trả lời ngày 12 tháng 3 năm 2013 lúc 11:06Mar 12, 2013 at 11:06

QWERTYQWERTYQwerty

26K21 Huy hiệu vàng103 Huy hiệu bạc126 Huy hiệu Đồng21 gold badges103 silver badges126 bronze badges

7

'''
w  write mode
r  read mode
a  append mode

w+  create file if it doesn't exist and open it in write mode
r+  open for reading and writing. Does not create file.
a+  create file if it doesn't exist and open it in append mode
'''

example:

file_name = 'my_file.txt'
f = open(file_name, 'w+')  # open file in write mode
f.write('python rules')
f.close()

[FYI đang sử dụng Python phiên bản 3.6.2]

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

bad_coder

9,51819 Huy hiệu vàng38 Huy hiệu bạc62 Huy hiệu Đồng19 gold badges38 silver badges62 bronze badges

Đã trả lời ngày 30 tháng 12 năm 2017 lúc 16:26Dec 30, 2017 at 16:26

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

1

Thực hành tốt là sử dụng như sau:

import os

writepath = 'some/path/to/file.txt'

mode = 'a' if os.path.exists(writepath) else 'w'
with open(writepath, mode) as f:
    f.write('Hello, world!\n')

Đã trả lời ngày 4 tháng 5 năm 2015 lúc 1:49May 4, 2015 at 1:49

LollerCoasterLollerCoasterlollercoaster

15.2K34 Huy hiệu vàng107 Huy hiệu bạc169 Huy hiệu đồng34 gold badges107 silver badges169 bronze badges

2

Thay đổi "RW" thành "W+"

Hoặc sử dụng 'A+' để nối thêm (không xóa nội dung hiện có)

Đã trả lời ngày 3 tháng 6 năm 2010 lúc 15:12Jun 3, 2010 at 15:12

Baloobaloobaloo

7.5174 Huy hiệu vàng25 Huy hiệu bạc35 Huy hiệu Đồng4 gold badges25 silver badges35 bronze badges

0

Vì Python 3.4, bạn nên sử dụng

file = open('data.py','w+')
4 để "chạm vào". Đó là một giải pháp thanh lịch hơn nhiều so với những giải pháp được đề xuất trong chủ đề này.
It is a much more elegant solution than the proposed ones in this thread.

file = open('data.py','a+')
0

Điều tương tự với các thư mục:

file = open('data.py','a+')
1

Đã trả lời ngày 23 tháng 4 năm 2018 lúc 6:29Apr 23, 2018 at 6:29

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

GranitosaurusgranitosaurusGranitosaurus

Huy hiệu vàng 19,5K453 Huy hiệu bạc76 Huy hiệu đồng4 gold badges53 silver badges76 bronze badges

6

file = open('data.py','a+')
2

R+ có nghĩa là đọc/viết

Đã trả lời ngày 3 tháng 6 năm 2010 lúc 15:18Jun 3, 2010 at 15:18

KhorkrakkhorkrakKhorkrak

3,8291 Huy hiệu vàng26 Huy hiệu bạc34 Huy hiệu đồng1 gold badge26 silver badges34 bronze badges

3

Câu trả lời của tôi:

file = open('data.py','a+')
3

Đã trả lời ngày 27 tháng 5 năm 2014 lúc 6:20May 27, 2014 at 6:20

Chien-Wei Huangchien-Wei HuangChien-Wei Huang

1.7351 Huy hiệu vàng17 Huy hiệu bạc27 Huy hiệu đồng1 gold badge17 silver badges27 bronze badges

Use:

file = open('data.py','a+')
4

Lưu ý: Các tệp phải được đóng sau khi bạn mở chúng và Trình quản lý bối cảnh là một cách tốt đẹp để cho Python chăm sóc điều này cho bạn.

Đã trả lời ngày 2 tháng 2 năm 2015 lúc 19:36Feb 2, 2015 at 19:36

Đối với Python 3+, tôi sẽ làm:

file = open('data.py','a+')
5

Vì vậy, vấn đề là

file = open('data.py','w+')
5 không thể tạo một tệp trước khi thư mục đích tồn tại. Chúng ta cần tạo nó và sau đó chế độ
file = open('data.py','w+')
6 là đủ trong trường hợp này.

Đã trả lời ngày 30 tháng 1 năm 2021 lúc 0:27Jan 30, 2021 at 0:27

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

2

file = open('data.py','w+')
7 làm việc cho tôi, tốt thôi.

Trong PY3K, mã của bạn tăng

file = open('data.py','w+')
8:

file = open('data.py','a+')
6

Trong Python-2.6, nó tăng

file = open('data.py','w+')
9.

Đã trả lời ngày 3 tháng 6 năm 2010 lúc 15:11Jun 3, 2010 at 15:11

SilentghostsilentghostSilentGhost

294K64 Huy hiệu vàng301 Huy hiệu bạc291 Huy hiệu Đồng64 gold badges301 silver badges291 bronze badges

Tôi nghĩ đó là

from pathlib import Path

fle = Path('data.py')
fle.touch(exist_ok=True)
f = open(fle)
0, không phải
from pathlib import Path

fle = Path('data.py')
fle.touch(exist_ok=True)
f = open(fle)
1. Tôi chỉ là một người bắt đầu, và đó là những gì tôi đã thấy trong tài liệu.

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

Tế bào thần kinh

4.6424 Huy hiệu vàng32 Huy hiệu bạc53 Huy hiệu Đồng4 gold badges32 silver badges53 bronze badges

Đã trả lời ngày 22 tháng 6 năm 2013 lúc 12:16Jun 22, 2013 at 12:16

Bạn muốn làm gì với tệp? Chỉ viết cho nó hoặc cả đọc và viết?

from pathlib import Path

fle = Path('data.py')
fle.touch(exist_ok=True)
f = open(fle)
2,
from pathlib import Path

fle = Path('data.py')
fle.touch(exist_ok=True)
f = open(fle)
3 sẽ cho phép ghi và sẽ tạo tệp nếu nó không tồn tại.

Nếu bạn cần đọc từ một tệp, tệp phải tồn tại trước khi mở nó. Bạn có thể kiểm tra sự tồn tại của nó trước khi mở hoặc sử dụng thử/ngoại trừ.

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

Tế bào thần kinh

4.6424 Huy hiệu vàng32 Huy hiệu bạc53 Huy hiệu Đồng4 gold badges32 silver badges53 bronze badges

Đã trả lời ngày 22 tháng 6 năm 2013 lúc 12:16Jun 3, 2010 at 15:29

user49117user49117user49117

Bạn muốn làm gì với tệp? Chỉ viết cho nó hoặc cả đọc và viết?3 silver badges9 bronze badges

2

from pathlib import Path

fle = Path('data.py')
fle.touch(exist_ok=True)
f = open(fle)
2,
from pathlib import Path

fle = Path('data.py')
fle.touch(exist_ok=True)
f = open(fle)
3 sẽ cho phép ghi và sẽ tạo tệp nếu nó không tồn tại.

Nếu bạn cần đọc từ một tệp, tệp phải tồn tại trước khi mở nó. Bạn có thể kiểm tra sự tồn tại của nó trước khi mở hoặc sử dụng thử/ngoại trừ.Oct 11, 2015 at 20:10

Gustavo6046Gustavo6046Gustavo6046

Đã trả lời ngày 3 tháng 6 năm 2010 lúc 15:297 silver badges17 bronze badges

7763 Huy hiệu bạc9 Huy hiệu Đồng

file = open('data.py','a+')
7

Đặt W+ để viết tệp, cắt ngắn nếu nó tồn tại, r+ để đọc tệp, tạo một tệp nếu nó không tồn tại nhưng không viết (và trả về null) hoặc a+ để tạo tệp mới hoặc nối lại một tệp hiện có.Jan 12, 2018 at 13:26

Đã trả lời ngày 11 tháng 10 năm 2015 lúc 20:10

3927 Huy hiệu bạc17 Huy hiệu đồng

file = open('data.py','a+')
8

Nếu bạn muốn mở nó để đọc và viết, tôi cho rằng bạn không muốn cắt ngắn nó khi bạn mở nó và bạn muốn có thể đọc tệp ngay sau khi mở nó. Vì vậy, đây là giải pháp tôi đang sử dụng:

Đã trả lời ngày 12 tháng 1 năm 2018 lúc 13:26Dec 14, 2017 at 13:58

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?

0

file = open('data.py','a+')
9

Vì vậy, bạn muốn viết dữ liệu vào một tệp, nhưng chỉ khi nó không tồn tại ?.Aug 8, 2018 at 5:45

Hướng dẫn which mode creates a new file if the file does not exist in python? - Chế độ nào tạo tệp mới nếu tệp không tồn tại trong python?