Hướng dẫn does open () create a file python? - open() có tạo file python không?

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,

with open("file.dat","a+") as f:
    f.write(...)
    ...
6 nên làm điều này, phải không?

Nó không hoạt động cho tôi (Python 2.6.2) và tôi tự hỏi liệu đó có phải là vấn đề phiên bản hay không nên làm việc như vậy hay không.

Điểm mấu chốt là, tôi chỉ cần một giải pháp cho vấn đề. Tôi tò mò về những thứ khác, nhưng tất cả những gì tôi cần là một cách tốt đẹp để thực hiện phần mở đầu.

Thư mục kèm theo có thể ghi được bởi người dùng và nhóm, không phải khác (tôi đang ở trên hệ thống Linux ... vì vậy quyền 775 nói cách khác) và lỗi chính xác là:

Ioerror: Không có tệp hoặc thư mục như vậy.

Hướng dẫn does open () create a file python? - open() có tạo file python không?

Tế bào thần kinh

4.7104 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu Đồng4 gold badges33 silver badges54 bronze badges

Đã hỏi ngày 3 tháng 6 năm 2010 lúc 15:05Jun 3, 2010 at 15:05

4

Bạn nên sử dụng

with open("file.dat","a+") as f:
    f.write(...)
    ...
7 với chế độ
with open("file.dat","a+") as f:
    f.write(...)
    ...
8:

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

Hướng dẫn does open () create a file python? - open() có tạo file python không?

Igor Chubin

59.1k10 Huy hiệu vàng117 Huy hiệu bạc139 Huy hiệu đồng10 gold badges117 silver badges139 bronze badges

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

muksiemksiemuksie

Huy hiệu vàng 12K11 gold badge18 silver badges14 bronze badges

10

Ưu điểm của cách tiếp cận sau là tệp được đóng đúng ở đầu của khối, ngay cả khi một ngoại lệ được nâng lên trên đường. Nó tương đương với

with open("file.dat","a+") as f:
    f.write(...)
    ...
9, nhưng ngắn hơn nhiều.properly closed at the block's end, even if an exception is raised on the way. It's equivalent to
with open("file.dat","a+") as f:
    f.write(...)
    ...
9, 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

26.4K21 Huy hiệu vàng103 Huy hiệu bạc127 Huy hiệu đồng21 gold badges103 silver badges127 bronze badges

8

'''
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 does open () create a file python? - open() có tạo file python không?

bad_coder

9.84420 Huy hiệu vàng40 Huy hiệu bạc64 Huy hiệu đồng20 gold badges40 silver badges64 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 does open () create a file python? - open() có tạo file python không?

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.3k34 Huy hiệu vàng108 Huy hiệu bạc169 Huy hiệu đồng34 gold badges108 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

muksiemksiebaloo

Huy hiệu vàng 12K14 gold badges25 silver badges35 bronze badges

0

Ưu điểm của cách tiếp cận sau là tệp được đóng đúng ở đầu của khối, ngay cả khi một ngoại lệ được nâng lên trên đường. Nó tương đương với

with open("file.dat","a+") as f:
    f.write(...)
    ...
9, nhưng ngắn hơn nhiều.
It is a much more elegant solution than the proposed ones in this thread.

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

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

filename.mkdir(parents=True, exist_ok=True)

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.Apr 23, 2018 at 6:29

Hướng dẫn does open () create a file python? - open() có tạo file python không?

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

QWERTYQWERTY4 gold badges53 silver badges77 bronze badges

6

>>> import os
>>> if os.path.exists("myfile.dat"):
...     f = file("myfile.dat", "r+")
... else:
...     f = file("myfile.dat", "w")

26.4K21 Huy hiệu vàng103 Huy hiệu bạc127 Huy hiệu đồng

[FYI đang sử dụng Python phiên bản 3.6.2]Jun 3, 2010 at 15:18

9.84420 Huy hiệu vàng40 Huy hiệu bạc64 Huy hiệu đồngKhorkrak

Đã trả lời ngày 30 tháng 12 năm 2017 lúc 16:261 gold badge26 silver badges34 bronze badges

3

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

file_path = 'myfile.dat'
try:
    fp = open(file_path)
except IOError:
    # If not exists, create the file
    fp = open(file_path, 'w+')

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

LollerCoasterLollerCoasterChien-Wei Huang

15.3k34 Huy hiệu vàng108 Huy hiệu bạc169 Huy hiệu đồng1 gold badge17 silver badges27 bronze badges

Use:

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

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ó)Feb 2, 2015 at 19:36

Baloobaloo

7.5174 Huy hiệu vàng25 Huy hiệu bạc35 Huy hiệu Đồng

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

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
0 để "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.

from pathlib import Path

filename = Path('myfile.txt')
filename.touch(exist_ok=True)  # will create file, if it exists will do nothing
file = open(filename)
Jan 30, 2021 at 0:27

Hướng dẫn does open () create a file python? - open() có tạo file python không?

2

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

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

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

Granitosaurusgranitosaurus

Huy hiệu vàng 19.7K453 Huy hiệu bạc77 Huy hiệu đồngJun 3, 2010 at 15:11

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

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

Khorkrakkhorkrak

Hướng dẫn does open () create a file python? - open() có tạo file python không?

Tế bào thần kinh

4.7104 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu Đồng4 gold badges33 silver badges54 bronze badges

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

Bạn nên sử dụng

with open("file.dat","a+") as f:
    f.write(...)
    ...
7 với chế độ
with open("file.dat","a+") as f:
    f.write(...)
    ...
8:

Igor Chubin

59.1k10 Huy hiệu vàng117 Huy hiệu bạc139 Huy hiệu đồng

Hướng dẫn does open () create a file python? - open() có tạo file python không?

Tế bào thần kinh

4.7104 Huy hiệu vàng33 Huy hiệu bạc54 Huy hiệu Đồng4 gold badges33 silver badges54 bronze badges

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

user49117user49117user49117

muksiemksie3 silver badges9 bronze badges

2

Huy hiệu vàng 12K1

Ưu điểm của cách tiếp cận sau là tệp được đóng đúng ở đầu của khối, ngay cả khi một ngoại lệ được nâng lên trên đường. Nó tương đương với

with open("file.dat","a+") as f:
    f.write(...)
    ...
9, nhưng ngắn hơn nhiều.Oct 11, 2015 at 20:10

Gustavo6046Gustavo6046Gustavo6046

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 -Python8 silver badges17 bronze badges

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

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

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.Jan 12, 2018 at 13:26

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

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ụ:

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

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:58Dec 14, 2017 at 13:58

Hướng dẫn does open () create a file python? - open() có tạo file python không?

0

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

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

Hướng dẫn does open () create a file python? - open() có tạo file python không?

Mở mở tạo một tệp trong Python?

Chúng ta có thể tạo một tệp bằng cách sử dụng hàm tích hợp Open ().Chuyển tên tệp và chế độ truy cập cho hàm Open () để tạo tệp.Chế độ truy cập Chỉ định mục đích mở một tệp.Dưới đây là danh sách các chế độ truy cập để tạo tệp A. . Pass the file name and access mode to the open() function to create a file. Access mode specifies the purpose of opening a file. Below is the list of access modes for creating an a file.

Chức năng mở có tạo ra một tệp không?

Hàm Open () mở một tệp và trả về nó dưới dạng đối tượng tệp.Đọc thêm về xử lý tập tin trong các chương của chúng tôi về xử lý tập tin.. Read more about file handling in our chapters about File Handling.

Mở có nên tạo ra một tệp python không?

Tạo tệp Nếu nó không tồn tại bằng cách sử dụng chế độ nối, phương thức file Open () Mode A+A+Mode được sử dụng để mở một tệp cho cả việc thêm và đọc.Nó nối văn bản ở cuối tệp nếu tệp tồn tại.Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để đọc và ghi. The file open() method “a+” mode is used to open a file for both appending and reading. It appends text at the end of the file if the file exists. If the file does not exist, it creates a new file for reading and writing.

Chế độ nào tạo ra một tệp mới nếu tệp không tồn tại?

Nếu một tệp không tồn tại, chế độ nối sẽ tạo tệp.append mode creates the file.