Hướng dẫn how can i check file size in python? - làm cách nào để kiểm tra kích thước tệp trong python?

Các câu trả lời khác hoạt động cho các tệp thực, nhưng nếu bạn cần một cái gì đó hoạt động cho "các đối tượng giống như tệp", hãy thử điều này:

# f is a file-like object. 
f.seek(0, os.SEEK_END)
size = f.tell()

Nó hoạt động cho các tệp thực và Stringio, trong thử nghiệm hạn chế của tôi. .

Chỉnh sửa

Một điểm khác biệt khác giữa điều này và

# f is a file-like object. 
old_file_position = f.tell()
f.seek(0, os.SEEK_END)
size = f.tell()
f.seek(old_file_position, os.SEEK_SET)
4 là bạn có thể
# f is a file-like object. 
old_file_position = f.tell()
f.seek(0, os.SEEK_END)
size = f.tell()
f.seek(old_file_position, os.SEEK_SET)
5 một tệp ngay cả khi bạn không có quyền đọc nó. Rõ ràng cách tiếp cận tìm kiếm/nói sẽ không hoạt động trừ khi bạn có quyền đọc.

Chỉnh sửa 2

Theo gợi ý của Jonathon, đây là phiên bản hoang tưởng. .

# f is a file-like object. 
old_file_position = f.tell()
f.seek(0, os.SEEK_END)
size = f.tell()
f.seek(old_file_position, os.SEEK_SET)

Trong hướng dẫn này, bạn sẽ học cách có được kích thước tệp trong Python.

Bất cứ khi nào chúng tôi làm việc với các tệp, đôi khi chúng tôi cần kiểm tra kích thước tệp trước khi thực hiện bất kỳ thao tác nào. Ví dụ: nếu bạn đang cố gắng sao chép nội dung từ một tệp này sang tệp khác. Trong trường hợp này, chúng tôi có thể kiểm tra xem kích thước tệp lớn hơn 0 trước khi thực hiện thao tác sao chép tệp.

Trong bài viết này, chúng tôi sẽ sử dụng các phương thức sau & nbsp; ba phương thức & nbsp; của một mô -đun HĐH và pathlib để có được kích thước tệp.three methods of an OS and pathlib module to get file size.

Mô -đun OS.Path::

  • # f is a file-like object. 
    old_file_position = f.tell()
    f.seek(0, os.SEEK_END)
    size = f.tell()
    f.seek(old_file_position, os.SEEK_SET)
    
    6: Trả lại kích thước tệp trong byte.
  • # f is a file-like object. 
    old_file_position = f.tell()
    f.seek(0, os.SEEK_END)
    size = f.tell()
    f.seek(old_file_position, os.SEEK_SET)
    
    7: Trả lại kích thước tệp tính bằng byte

Mô -đun Pathlib::

  • # f is a file-like object. 
    old_file_position = f.tell()
    f.seek(0, os.SEEK_END)
    size = f.tell()
    f.seek(old_file_position, os.SEEK_SET)
    
    8: Trả lại kích thước tệp trong byte.

Bài tập và câu đố Python

Các bài tập mã hóa miễn phí và các câu đố bao gồm các vấn đề cơ bản của Python, cấu trúc dữ liệu, phân tích dữ liệu, v.v.

Hơn 15 bài tập và câu đố dành riêng cho chủ đề

  1. Mỗi bài tập chứa 10 câu hỏi

    Mỗi bài kiểm tra chứa 12-15 mcq

  2. Trong hướng dẫn này, bạn sẽ học cách có được kích thước tệp trong Python.

    Bất cứ khi nào chúng tôi làm việc với các tệp, đôi khi chúng tôi cần kiểm tra kích thước tệp trước khi thực hiện bất kỳ thao tác nào. Ví dụ: nếu bạn đang cố gắng sao chép nội dung từ một tệp này sang tệp khác. Trong trường hợp này, chúng tôi có thể kiểm tra xem kích thước tệp lớn hơn 0 trước khi thực hiện thao tác sao chép tệp.

    Trong bài viết này, chúng tôi sẽ sử dụng các phương thức sau & nbsp; ba phương thức & nbsp; của một mô -đun HĐH và pathlib để có được kích thước tệp.: which always begins with the root folder. The absolute path includes the complete directory list required to locate the file. For example, 

    import os.path
    
    # file to check
    file_path = r'E:/demos/account/sales.txt'
    
    sz = os.path.getsize(file_path)
    print(f'The {file_path} size is', sz, 'bytes')
    0 is an absolute path to discover the sales.txt. All of the information needed to find the file is contained in the path string.

    Phương thức OS.Path.getSize () để kiểm tra kích thước tệp: which is relative to the program’s current working directory.

    Ví dụ: bạn muốn & nbsp; đọc tệp & nbsp; để phân tích dữ liệu bán hàng để chuẩn bị báo cáo hàng tháng, nhưng trước khi thực hiện thao tác này, chúng tôi muốn kiểm tra xem tệp có chứa bất kỳ dữ liệu nào không.

  3. Mô -đun & nbsp; os.path & nbsp; có một số chức năng có giá trị trên các tên đường dẫn. Ở đây chúng ta sẽ xem cách sử dụng mô -đun & nbsp; ____ 19 & nbsp; để kiểm tra kích thước tệp.

    Quan trọng mô -đun OS.PathThis function returns file size in bytes. It raises OSError if the file does not exist or is inaccessible.

Mô -đun này giúp chúng tôi làm việc với các đường dẫn tệp và thư mục trong Python. Sử dụng mô -đun này, chúng ta có thể truy cập và thao tác các đường dẫn

import os.path

# file to check
file_path = r'E:/demos/account/sales.txt'

sz = os.path.getsize(file_path)
print(f'The {file_path} size is', sz, 'bytes')

Xây dựng đường dẫn tệp:

E:/demos/account/sales.txt size is 10560 bytes

Đường dẫn tệp xác định vị trí của tệp hoặc thư mục trong hệ thống máy tính. Có hai cách để chỉ định một đường dẫn tệp.

  • Đường dẫn tuyệt đối: luôn bắt đầu với thư mục gốc. Đường dẫn tuyệt đối bao gồm danh sách thư mục hoàn chỉnh cần thiết để định vị tệp. Ví dụ: & nbsp; ________ 20 & nbsp; là một con đường tuyệt đối để khám phá Sales.txt. Tất cả các thông tin cần thiết để tìm tệp được chứa trong chuỗi đường dẫn.
  • Đường dẫn tương đối: liên quan đến thư mục làm việc hiện tại của chương trình.

Để duy trì tính đồng nhất trên hệ điều hành, & nbsp; sử dụng slash forward & nbsp; (____ 21) để tách đường dẫn. Nó sẽ hoạt động trên các hệ thống Windows, MacOS và dựa trên UNIX, bao gồm cả Linux.

import os.path

# calculate file size in KB, MB, GB
def convert_bytes(size):
    """ Convert bytes to KB, or MB or GB"""
    for x in ['bytes', 'KB', 'MB', 'GB', 'TB']:
        if size < 1024.0:
            return "%3.1f %s" % (size, x)
        size /= 1024.0

f_size = os.path.getsize(r'E:/demos/account/sales.txt')
x = convert_bytes(f_size)
print('file size is', x)

Output::

file size is 10.3 KB

Sử dụng hàm Os.Path.getSize ()

Sử dụng chức năng

# f is a file-like object. 
old_file_position = f.tell()
f.seek(0, os.SEEK_END)
size = f.tell()
f.seek(old_file_position, os.SEEK_SET)
6 để kiểm tra kích thước tệp. Chuyển tên tệp hoặc đường dẫn tệp đến hàm này dưới dạng đối số. Hàm này trả về kích thước tệp trong byte. Nó tăng Oserror nếu tệp không tồn tại hoặc không thể truy cập được.

  • Ví dụ để có được kích thước tệp
  • Đầu ra:
  • Nhận kích thước tệp trong KB, MB hoặc GB

Đầu tiên, lấy kích thước tệp bằng hàm getSize ().: The

import os.path

# file to check
file_path = r'E:/demos/account/sales.txt'

sz = os.path.getsize(file_path)
print(f'The {file_path} size is', sz, 'bytes')
6 function internally uses the
import os.path

# file to check
file_path = r'E:/demos/account/sales.txt'

sz = os.path.getsize(file_path)
print(f'The {file_path} size is', sz, 'bytes')
7.

Example::

import os

# get file statistics
stat = os.stat(r'E:/demos/account/sales.txt')

# get file size
f_size = stat.st_size
print('file size is', f_size, 'bytes')

Output::

file size is 10560 bytes

Tiếp theo, chuyển đổi byte thành kb hoặc mb.

Sử dụng ví dụ sau để chuyển đổi kích thước tệp trong KB, MB hoặc GB.

  • Phương thức Os.stat () để kiểm tra kích thước tệp
  • Phương thức
    # f is a file-like object. 
    old_file_position = f.tell()
    f.seek(0, os.SEEK_END)
    size = f.tell()
    f.seek(old_file_position, os.SEEK_SET)
    
    4 trả về số liệu thống kê của một tệp như siêu dữ liệu của tệp, ngày tạo hoặc ngày sửa đổi, kích thước tệp, v.v.

Example::

import pathlib

# calculate file size in KB, MB, GB
def convert_bytes(size):
    """ Convert bytes to KB, or MB or GB"""
    for x in ['bytes', 'KB', 'MB', 'GB', 'TB']:
        if size < 1024.0:
            return "%3.1f %s" % (size, x)
        size /= 1024.0

path = pathlib.Path(r'E:/demos/account/sales.txt')
f_size = path.stat().st_size
print('File size in bytes', f_size)

# you can skip this if you don't want file size in KB or MB
x = convert_bytes(f_size)
print('file size is', x)

Output::

file size is 10.3 KB

Đầu tiên, nhập mô -đun HĐH

Tiếp theo, sử dụng phương thức

import os.path

# file to check
file_path = r'E:/demos/account/sales.txt'

sz = os.path.getsize(file_path)
print(f'The {file_path} size is', sz, 'bytes')
4 để có được số liệu thống kê tệp.

Cuối cùng, sử dụng thuộc tính

import os.path

# file to check
file_path = r'E:/demos/account/sales.txt'

sz = os.path.getsize(file_path)
print(f'The {file_path} size is', sz, 'bytes')
5 để có được kích thước tệp.

Tất cả các giải pháp trên hoạt động cho một tệp có trên đĩa, nhưng nếu bạn muốn tìm kích thước tệp cho các đối tượng giống như tệp, hãy sử dụng giải pháp dưới đây.

Chúng tôi sẽ sử dụng chức năng

# f is a file-like object. 
old_file_position = f.tell()
f.seek(0, os.SEEK_END)
size = f.tell()
f.seek(old_file_position, os.SEEK_SET)
2 để di chuyển con trỏ tệp để tính toán kích thước tệp. Hãy cùng xem các bước.

  • Sử dụng chức năng
    E:/demos/account/sales.txt size is 10560 bytes
    0 để mở một tệp ở chế độ đọc. Khi chúng tôi mở một tệp, con trỏ luôn chỉ vào đầu tệp.
  • Sử dụng phương thức Seek () để di chuyển con trỏ tệp ở cuối tệp.
  • Tiếp theo, sử dụng phương thức tệp
    # f is a file-like object. 
    old_file_position = f.tell()
    f.seek(0, os.SEEK_END)
    size = f.tell()
    f.seek(old_file_position, os.SEEK_SET)
    
    3 để có được kích thước tệp tính bằng byte. Phương thức
    # f is a file-like object. 
    old_file_position = f.tell()
    f.seek(0, os.SEEK_END)
    size = f.tell()
    f.seek(old_file_position, os.SEEK_SET)
    
    3 trả về vị trí con trỏ hiện tại, tương đương với số byte mà con trỏ đã di chuyển, không có gì ngoài kích thước tệp trong byte.

Example::

# f is a file-like object. 
old_file_position = f.tell()
f.seek(0, os.SEEK_END)
size = f.tell()
f.seek(old_file_position, os.SEEK_SET)
0

Output::

file size is 10560 bytes

Sumary

Trong bài viết này, chúng tôi đã sử dụng các phương thức sau & nbsp; ba phương thức & nbsp; của một mô -đun HĐH và pathlib để có được kích thước tệp.three methods of an OS and pathlib module to get file size.

Mô -đun OS.Path::

  • # f is a file-like object. 
    old_file_position = f.tell()
    f.seek(0, os.SEEK_END)
    size = f.tell()
    f.seek(old_file_position, os.SEEK_SET)
    
    6: Trả lại kích thước tệp trong byte.
  • # f is a file-like object. 
    old_file_position = f.tell()
    f.seek(0, os.SEEK_END)
    size = f.tell()
    f.seek(old_file_position, os.SEEK_SET)
    
    7: Trả lại kích thước tệp tính bằng byte

Mô -đun Pathlib::

  • # f is a file-like object. 
    old_file_position = f.tell()
    f.seek(0, os.SEEK_END)
    size = f.tell()
    f.seek(old_file_position, os.SEEK_SET)
    
    8: Trả lại kích thước tệp trong byte.

Bài tập và câu đố Python

Các bài tập mã hóa miễn phí và các câu đố bao gồm các vấn đề cơ bản của Python, cấu trúc dữ liệu, phân tích dữ liệu, v.v.

  • Hơn 15 bài tập và câu đố dành riêng cho chủ đềTopic-specific Exercises and Quizzes
  • Mỗi bài tập chứa 10 câu hỏi
  • Mỗi bài kiểm tra chứa 12-15 mcq