Hướng dẫn python read file not exist - tệp đọc python không tồn tại

Cách tốt nhất trong Python để xử lý việc đọc một tệp có thể không tồn tại là gì?

Hiện tại tôi có những điều sau:

    try:
        with open[filename, "r"] as f:
            return f.read[]
    except IOError:
        return False

Đây có phải là cách tốt nhất để làm điều đó hay điều này sai ở bất kỳ cấp độ nào?

Tôi đoán mối quan tâm lớn nhất của tôi là:

  1. Chỉ bắt được ngoại lệ chỉ để trả về sai
  2. Có lẽ tôi đang bỏ lỡ cách 'python' âm thầm thiếu lỗi cho một tệp bị thiếu

Martineau

Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges

Đã hỏi ngày 25 tháng 5 năm 2013 lúc 17:26May 25, 2013 at 17:26

Marty Wallacemarty WallaceMarty Wallace

32.4K53 Huy hiệu vàng134 Huy hiệu bạc198 Huy hiệu đồng53 gold badges134 silver badges198 bronze badges

2

Một

import os

if os.path.isfile['./file.txt']:
  # do something with the file
7 /
import os

if os.path.isfile['./file.txt']:
  # do something with the file
8 thực sự là cách tốt nhất.

Jamylak

124K29 Huy hiệu vàng227 Huy hiệu bạc228 Huy hiệu Đồng29 gold badges227 silver badges228 bronze badges

Đã trả lời ngày 25 tháng 5 năm 2013 lúc 17:27May 25, 2013 at 17:27

Lennart Regebrolennart RegebroLennart Regebro

162K41 Huy hiệu vàng221 Huy hiệu bạc251 Huy hiệu Đồng41 gold badges221 silver badges251 bronze badges

6

import os

if os.path.isfile['./file.txt']:
  # do something with the file

Đã trả lời ngày 29 tháng 4 năm 2019 lúc 15:54Apr 29, 2019 at 15:54

Một thử ngoại trừ khối sẽ bắt gặp lỗi, nhưng bạn có thể không muốn ngăn chặn lỗi.

Nếu bạn đang viết một hàm trả về nội dung được đọc từ tệp, thì nó sẽ khôn ngoan hơn với

import os

if os.path.isfile['./file.txt']:
  # do something with the file
9 thay vì
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
0. Nói chung, đó là một ý tưởng tốt cho một chức năng chỉ trả về một loại. Cái gì đó như:

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''

Thực sự có vẻ như bạn đang báo hiệu một điều kiện lỗi với sự trở lại. Nếu vậy, bạn thường tốt hơn khi chỉ để ngoại lệ truyền ra khỏi chức năng. Không phải là Pythonic khi sử dụng giá trị trả về để báo hiệu một điều kiện đặc biệt.

Đã trả lời ngày 25 tháng 5 năm 2013 lúc 17:43May 25, 2013 at 17:43

Ryan Hainingan HainingRyan Haining

33.9K12 Huy hiệu vàng106 Huy hiệu bạc167 Huy hiệu đồng12 gold badges106 silver badges167 bronze badges

2

Tóm tắt: Trong hướng dẫn này, bạn sẽ học cách kiểm tra xem một tệp có tồn tại không.: in this tutorial, you’ll learn how to check if a file exists.

Khi xử lý các tệp, bạn sẽ thường muốn kiểm tra xem một tệp có tồn tại trước khi làm việc khác với nó như đọc từ tệp hoặc ghi vào nó không.

Để thực hiện, bạn có thể sử dụng hàm

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
1 từ mô -đun
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
2 hoặc phương thức
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
3 từ lớp
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
4 trong mô -đun
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
5.

hàm os.path.exists []

from os.path import exists file_exists = exists[path_to_file]

Code language: JavaScript [javascript]

Phương thức path.is_file []

from pathlib import Path path = Path[path_to_file] path.is_file[]

Code language: JavaScript [javascript]

1] Sử dụng hàm os.path.exists [] để kiểm tra xem tệp có tồn tại

Để kiểm tra xem tệp có tồn tại không, bạn chuyển đường dẫn tệp đến hàm

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
1 từ thư viện tiêu chuẩn
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
2.

Đầu tiên, nhập thư viện tiêu chuẩn

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
2:

import os.path

Code language: JavaScript [javascript]

Thứ hai, hãy gọi hàm

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
1:

os.path.exists[path_to_file]

Code language: CSS [css]

Nếu tệp tồn tại, hàm

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
1 trả về

from os.path import exists file_exists = exists[path_to_file]

Code language: JavaScript [javascript]
1. Nếu không, nó trả về
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
0.

Nếu tệp nằm trong cùng một thư mục với chương trình,

from os.path import exists file_exists = exists[path_to_file]

Code language: JavaScript [javascript]
3 chỉ đơn giản là tên tệp.

Tuy nhiên, nó không phải là trường hợp, bạn cần vượt qua đường dẫn tệp đầy đủ của tệp. Ví dụ:

/path/to/filename

Ngay cả khi bạn chạy chương trình trên Windows, bạn nên sử dụng Slash phía trước [

from os.path import exists file_exists = exists[path_to_file]

Code language: JavaScript [javascript]
4] để tách đường dẫn. Nó sẽ hoạt động trên các Windows, MacOS và Linux.

Ví dụ sau sử dụng hàm

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
1 để kiểm tra xem tệp

from os.path import exists file_exists = exists[path_to_file]

Code language: JavaScript [javascript]
6 có tồn tại trong cùng thư mục với chương trình không:

import os.path file_exists = os.path.exists['readme.txt'] print[file_exists]

Code language: JavaScript [javascript]

Nếu tệp

from os.path import exists file_exists = exists[path_to_file]

Code language: JavaScript [javascript]
6 tồn tại, bạn sẽ thấy đầu ra sau:

True

Code language: PHP [php]

Nếu không, bạn sẽ thấy

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
0 trên màn hình:

import os

if os.path.isfile['./file.txt']:
  # do something with the file
0

Để thực hiện cuộc gọi đến hàm

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
1 ngắn hơn và rõ ràng hơn, bạn có thể nhập chức năng đó và đổi tên thành hàm

from pathlib import Path path = Path[path_to_file] path.is_file[]

Code language: JavaScript [javascript]
0 như thế này:

import os

if os.path.isfile['./file.txt']:
  # do something with the file
1

2] Sử dụng mô -đun Pathlib để kiểm tra xem tệp có tồn tại không

Python đã giới thiệu mô -đun

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
5 kể từ phiên bản 3.4.

Mô-đun

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
5 cho phép bạn thao tác các tệp và thư mục bằng cách sử dụng phương pháp hướng đối tượng. Nếu bạn không quen thuộc với lập trình hướng đối tượng, hãy xem phần Python OOP.

Đầu tiên, nhập lớp

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
4 từ mô -đun
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
5:

import os

if os.path.isfile['./file.txt']:
  # do something with the file
2

Sau đó, khởi tạo một thể hiện mới của lớp

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
4 và khởi tạo nó bằng đường dẫn tệp mà bạn muốn kiểm tra sự tồn tại:

import os

if os.path.isfile['./file.txt']:
  # do something with the file
3

Cuối cùng, hãy kiểm tra xem tệp có tồn tại bằng phương pháp

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
3 không:

import os

if os.path.isfile['./file.txt']:
  # do something with the file
4

Nếu tệp không tồn tại, phương thức

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
3 trả về
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
0. Nếu không, nó trả về

from os.path import exists file_exists = exists[path_to_file]

Code language: JavaScript [javascript]
1.

Ví dụ sau đây cho thấy cách sử dụng lớp

try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
4 từ mô -đun
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
5 để kiểm tra xem tệp

from os.path import exists file_exists = exists[path_to_file]

Code language: JavaScript [javascript]
6 có tồn tại trong cùng một thư mục của chương trình không:

import os

if os.path.isfile['./file.txt']:
  # do something with the file
5

Nếu tệp

from os.path import exists file_exists = exists[path_to_file]

Code language: JavaScript [javascript]
6 tồn tại, bạn sẽ thấy đầu ra sau:

import os

if os.path.isfile['./file.txt']:
  # do something with the file
6

Nếu không, bạn sẽ thấy
try:
    with open[filename] as f:
        return f.read[]
except IOError:
    return ''
0 trên màn hình:

  • Để thực hiện cuộc gọi đến hàm
    try:
        with open[filename] as f:
            return f.read[]
    except IOError:
        return ''
    
    1 ngắn hơn và rõ ràng hơn, bạn có thể nhập chức năng đó và đổi tên thành hàm

    from pathlib import Path path = Path[path_to_file] path.is_file[]

    Code language: JavaScript [javascript]
    0 như thế này:

2] Sử dụng mô -đun Pathlib để kiểm tra xem tệp có tồn tại không

Tại sao Python nói rằng tập tin của tôi không tồn tại?

Python filenotfounderror: [errno 2] Không có lỗi hoặc lỗi thư mục như vậy thường được đưa ra bởi thư viện HĐH. Lỗi này cho bạn biết rằng bạn đang cố gắng truy cập một tệp hoặc thư mục không tồn tại. Để sửa lỗi này, hãy kiểm tra xem bạn có đề cập đến tệp hoặc thư mục phù hợp trong chương trình của mình không.you are trying to access a file or folder that does not exist. To fix this error, check that you are referring to the right file or folder in your program.

Làm thế nào để bạn mở một tệp không tồn tại trong Python?

W+: Nó được sử dụng để tạo tệp nếu nó chưa tồn tại và sau đó nó được sử dụng để mở nó ở chế độ ghi.R+: Nó mở tệp cần thiết trong cả hai chế độ [đọc và ghi].A+: Nếu tệp không tồn tại, trước tiên nó được tạo và sau đó được mở ở chế độ nối.If the file does not exist, first it is created and afterward opened in append mode.

Khi bạn mở một tệp để đọc trong Python nếu tệp không tồn tại?

Python Advance 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."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.

Làm thế nào để bạn kiểm tra xem một tệp có tồn tại hay không trong Python?

Trong Python, bạn có thể kiểm tra xem một số tệp hoặc thư mục có tồn tại bằng các phương thức ISFILE [] và ISDIR [] hay không.Tuy nhiên, nếu bạn sử dụng isfile [] để kiểm tra xem một thư mục nhất định có tồn tại hay không, phương thức sẽ trả về sai.Tương tự như vậy, nếu bạn sử dụng nếu isdir [] để kiểm tra xem một tệp nhất định có tồn tại hay không, phương thức trả về sai.

Bài Viết Liên Quan

Chủ Đề