Hướng dẫn how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

869

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.
Learn more.

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 how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

Tế bào thần kinh

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

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

3

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 how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

Igor Chubin

58.6K10 Huy hiệu vàng117 Huy hiệu bạc138 Huy hiệu đồng10 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

muksiemksiemuksie

Huy hiệu vàng 11,9K11 gold badge18 silver badges14 bronze badges

9

Ư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

25.9K21 Huy hiệu vàng103 Huy hiệu bạc125 Huy hiệu Đồng21 gold badges103 silver badges125 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 how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

bad_coder

9.46319 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 how do i make a file open in python? - làm cách nào để mở một tệp bằng 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.1k34 Huy hiệu vàng106 Huy hiệu bạc168 Huy hiệu đồng34 gold badges106 silver badges168 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 11,9K14 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 how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

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

QWERTYQWERTY4 gold badges53 silver badges76 bronze badges

6

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

25.9K21 Huy hiệu vàng103 Huy hiệu bạc125 Huy hiệu Đồng

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

9.46319 Huy hiệu vàng38 Huy hiệu bạc62 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.1k34 Huy hiệu vàng106 Huy hiệu bạc168 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 how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

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,5K453 Huy hiệu bạc76 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:1864 gold badges301 silver badges291 bronze badges

Khorkrakkhorkrak

Hướng dẫn how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

Tế bào thần kinh

4.6044 Huy hiệu vàng32 Huy hiệu bạc53 Huy hiệu Đồng4 gold badges32 silver badges53 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

58.6K10 Huy hiệu vàng117 Huy hiệu bạc138 Huy hiệu đồng

Hướng dẫn how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

Tế bào thần kinh

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

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

user49117user49117user49117

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:3 silver badges9 bronze badges

2

Igor Chubin

58.6K10 Huy hiệu vàng117 Huy hiệu bạc138 Huy hiệu đồngOct 11, 2015 at 20:10

Gustavo6046Gustavo6046Gustavo6046

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

muksiemksie

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

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

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 ?.

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 how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

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 how do i make a file open in python? - làm cách nào để mở một tệp bằng python?

Làm thế nào để tôi có được Python để mở một tập tin?

Mở các tệp trong Python Python có hàm Open () tích hợp để mở tệp. Hàm này trả về một đối tượng tệp, còn được gọi là tay cầm, vì nó được sử dụng để đọc hoặc sửa đổi tệp cho phù hợp. Chúng tôi có thể chỉ định chế độ trong khi mở một tệp. Trong chế độ, chúng tôi chỉ định xem chúng tôi muốn đọc r, viết W hay nối A vào tệp.Python has a built-in open() function to open a file. This function returns a file object, also called a handle, as it is used to read or modify the file accordingly. We can specify the mode while opening a file. In mode, we specify whether we want to read r , write w or append a to the file.

Làm thế nào để bạn tạo một tệp và mở nó 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.using the built-in function open() . 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.

Làm thế nào để mở () hoạt động trong Python?

Python open () hàm 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.opens a file, and returns it as a file object. Read more about file handling in our chapters about File Handling.

Mở () trong tệp là gì?

Hàm open () có hai tham số;Tên tệp và chế độ.Có bốn phương thức khác nhau (chế độ) để mở tệp: "r" - đọc - giá trị mặc định.Mở một tệp để đọc, lỗi nếu tệp không tồn tại."A" - Phụ lục - Mở một tệp để nối thêm, tạo tệp nếu nó không tồn tại.takes two parameters; filename, and mode. There are four different methods (modes) for opening a file: "r" - Read - Default value. Opens a file for reading, error if the file does not exist. "a" - Append - Opens a file for appending, creates the file if it does not exist.