Hướng dẫn get size of csv file python - lấy kích thước của tệp csv python

Chỉnh sửa 2018-10-29

Cảm ơn bạn đã cho ý kiến.

Show

Tôi đã thử nghiệm một số loại mã để có được số dòng trong tệp CSV về tốc độ. Phương pháp tốt nhất là dưới đây.

with open(filename) as f:
    sum(1 for line in f)

Đây là mã được kiểm tra.

import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)

Kết quả là dưới đây.

# sum1forline
Elapsed time :  0.6327946722068599
n =  2528244


# lenopenreadlines
Elapsed time :  0.655304473598555
n =  2528244


# lenpd
Elapsed time :  0.7561274056295324
n =  2528244


# csvreaderfor
Elapsed time :  1.5571560935772661
n =  2528244


# openenum
Elapsed time :  0.773000013928679
n =  2528244

Tóm lại,

import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
1 là nhanh nhất. Nhưng có thể không có sự khác biệt đáng kể so với
import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
2.

import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
3 là 30,2MB và có 31 triệu ký tự.

Trong hướng dẫn này, chúng tôi sẽ xem xét cách lấy kích thước tệp bằng Python.

Lập trình nhận kích thước tệp

Có một số cách để có được kích thước của một tệp trong Python. Bạn có thể sử dụng chức năng Mô -đun HĐH

import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
4 để có được một số thống kê tệp bao gồm cả kích thước của nó. Bạn cũng có thể sử dụng mô -đun
import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
5 để có được kích thước tệp.

Hãy cùng xem xét việc sử dụng các phương pháp nêu trên với sự trợ giúp của một số ví dụ. Đầu tiên, hãy để kiểm tra thủ công kích thước của tệp mà chúng tôi sẽ đo bằng Python, đây là tệp CSV chứa các đánh giá 5K về phim.

Hướng dẫn get size of csv file python - lấy kích thước của tệp csv python

Bạn có thể thấy rằng kích thước tệp là khoảng 6,40 MB. Bây giờ, hãy tiếp tục và sử dụng Python để có được kích thước của cùng một tệp.

1. Sử dụng mô -đun import timeit import csv import pandas as pd filename = './sample_submission.csv' def talktime(filename, funcname, func): print(f"# {funcname}") t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100 print('Elapsed time : ', t) print('n = ', func(filename)) print('\n') def sum1forline(filename): with open(filename) as f: return sum(1 for line in f) talktime(filename, 'sum1forline', sum1forline) def lenopenreadlines(filename): with open(filename) as f: return len(f.readlines()) talktime(filename, 'lenopenreadlines', lenopenreadlines) def lenpd(filename): return len(pd.read_csv(filename)) + 1 talktime(filename, 'lenpd', lenpd) def csvreaderfor(filename): cnt = 0 with open(filename) as f: cr = csv.reader(f) for row in cr: cnt += 1 return cnt talktime(filename, 'csvreaderfor', csvreaderfor) def openenum(filename): cnt = 0 with open(filename) as f: for i, line in enumerate(f,1): cnt += 1 return cnt talktime(filename, 'openenum', openenum) 6

Mô -đun

import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
6 trong Python đi kèm với một số chức năng hữu ích để tương tác với hệ thống tệp. Để có được kích thước tệp, bạn có thể sử dụng chức năng
import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
4 mà số liệu thống kê tệp khác nhau. Để cụ thể nhận kích thước tệp, hãy sử dụng thuộc tính
import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
9. Ví dụ: hãy để Lừa nhận được kích thước của tệp trên bằng phương pháp này.

import os

# the absoulte path of the file
file_path = r"C:\Users\piyush\Documents\Projects\movie_reviews_data\IMDB Dataset 5k.csv"
# get the file size
print(os.stat(file_path).st_size)

Output:

6716779

Lưu ý rằng chúng tôi đã sử dụng một đường dẫn tuyệt đối đến tệp ở đây. Bạn cũng có thể sử dụng một đường dẫn tương đối. Bạn có thể thấy rằng chúng tôi có được kích thước tệp trong các byte có thể dễ dàng chuyển đổi thành kilobyte và megabyte. Hãy để tạo ra một chức năng đơn giản để có được kích thước tệp bằng byte, kilobyte và megabyte.

# function to show file size in bytes, kilobytes, and megabytes
def show_file_size(size):
    kb = size/1024
    mb = kb/1024
    print("The file size in -")
    print("Bytes: {}".format(size))
    print("Kilobytes (KB): {0:.2f}".format(kb))
    print("Megabytes (MB): {0:.2f}".format(mb))
    
# display the file size
size = os.stat(file_path).st_size
show_file_size(size)

Output:

The file size in -
Bytes: 6716779
Kilobytes (KB): 6559.35
Megabytes (MB): 6.41

Bạn có thể thấy rằng chúng tôi có được kích thước tệp là ~ 6,41MB, xấp xỉ bằng kích thước chúng tôi nhận được từ các thuộc tính tệp trong Windows.

Ngoài ra, bạn cũng có thể sử dụng chức năng

# sum1forline
Elapsed time :  0.6327946722068599
n =  2528244


# lenopenreadlines
Elapsed time :  0.655304473598555
n =  2528244


# lenpd
Elapsed time :  0.7561274056295324
n =  2528244


# csvreaderfor
Elapsed time :  1.5571560935772661
n =  2528244


# openenum
Elapsed time :  0.773000013928679
n =  2528244
0 để có được kích thước tệp.you can also use the
# sum1forline
Elapsed time :  0.6327946722068599
n =  2528244


# lenopenreadlines
Elapsed time :  0.655304473598555
n =  2528244


# lenpd
Elapsed time :  0.7561274056295324
n =  2528244


# csvreaderfor
Elapsed time :  1.5571560935772661
n =  2528244


# openenum
Elapsed time :  0.773000013928679
n =  2528244
0 function to get the file size.

# the absoulte path of the file
file_path = r"C:\Users\piyush\Documents\Projects\movie_reviews_data\IMDB Dataset 5k.csv"
# get the file size
print(os.path.getsize(file_path))

Output;

6716779

Chúng tôi nhận được kết quả tương tự như chúng tôi đã làm với

# sum1forline
Elapsed time :  0.6327946722068599
n =  2528244


# lenopenreadlines
Elapsed time :  0.655304473598555
n =  2528244


# lenpd
Elapsed time :  0.7561274056295324
n =  2528244


# csvreaderfor
Elapsed time :  1.5571560935772661
n =  2528244


# openenum
Elapsed time :  0.773000013928679
n =  2528244
1.

Để biết thêm về chức năng

import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
4, hãy tham khảo tài liệu của nó.

2. Sử dụng mô -đun import timeit import csv import pandas as pd filename = './sample_submission.csv' def talktime(filename, funcname, func): print(f"# {funcname}") t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100 print('Elapsed time : ', t) print('n = ', func(filename)) print('\n') def sum1forline(filename): with open(filename) as f: return sum(1 for line in f) talktime(filename, 'sum1forline', sum1forline) def lenopenreadlines(filename): with open(filename) as f: return len(f.readlines()) talktime(filename, 'lenopenreadlines', lenopenreadlines) def lenpd(filename): return len(pd.read_csv(filename)) + 1 talktime(filename, 'lenpd', lenpd) def csvreaderfor(filename): cnt = 0 with open(filename) as f: cr = csv.reader(f) for row in cr: cnt += 1 return cnt talktime(filename, 'csvreaderfor', csvreaderfor) def openenum(filename): cnt = 0 with open(filename) as f: for i, line in enumerate(f,1): cnt += 1 return cnt talktime(filename, 'openenum', openenum) 5

Bạn cũng có thể nhận kích thước tệp bằng mô -đun

import timeit
import csv
import pandas as pd

filename = './sample_submission.csv'

def talktime(filename, funcname, func):
    print(f"# {funcname}")
    t = timeit.timeit(f'{funcname}("{filename}")', setup=f'from __main__ import {funcname}', number = 100) / 100
    print('Elapsed time : ', t)
    print('n = ', func(filename))
    print('\n')

def sum1forline(filename):
    with open(filename) as f:
        return sum(1 for line in f)
talktime(filename, 'sum1forline', sum1forline)

def lenopenreadlines(filename):
    with open(filename) as f:
        return len(f.readlines())
talktime(filename, 'lenopenreadlines', lenopenreadlines)

def lenpd(filename):
    return len(pd.read_csv(filename)) + 1
talktime(filename, 'lenpd', lenpd)

def csvreaderfor(filename):
    cnt = 0
    with open(filename) as f:
        cr = csv.reader(f)
        for row in cr:
            cnt += 1
    return cnt
talktime(filename, 'csvreaderfor', csvreaderfor)

def openenum(filename):
    cnt = 0
    with open(filename) as f:
        for i, line in enumerate(f,1):
            cnt += 1
    return cnt
talktime(filename, 'openenum', openenum)
5. Lưu ý rằng phương pháp này chỉ đơn giản là một trình bao bọc xung quanh
# sum1forline
Elapsed time :  0.6327946722068599
n =  2528244


# lenopenreadlines
Elapsed time :  0.655304473598555
n =  2528244


# lenpd
Elapsed time :  0.7561274056295324
n =  2528244


# csvreaderfor
Elapsed time :  1.5571560935772661
n =  2528244


# openenum
Elapsed time :  0.773000013928679
n =  2528244
5 khi nó trả về cùng một đối tượng.

from pathlib import Path

# the absoulte path of the file
file_path = r"C:\Users\piyush\Documents\Projects\movie_reviews_data\IMDB Dataset 5k.csv"
# get the file size
print(Path(file_path).stat().st_size)

Output:

6716779

Chúng tôi nhận được kích thước tệp trong byte.

Với điều này, chúng tôi đi đến cuối hướng dẫn này. Các ví dụ và kết quả mã được trình bày trong hướng dẫn này đã được triển khai trong một cuốn sổ tay Jupyter với hạt nhân Python (phiên bản 3.8.3).


Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin. Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do not spam and you can opt out any time.

Hướng dẫn về tương tác với hệ thống tệp trong Python -

  • Python - Nhận tên tệp từ đường dẫn với các ví dụ
  • Nhận kích thước tệp bằng Python
  • Danh sách tất cả các tệp trong một thư mục sử dụng Python
  • Nhận thư mục làm việc hiện tại trong Python

  • Hướng dẫn get size of csv file python - lấy kích thước của tệp csv python

    Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.

    Xem tất cả các bài viết

Làm cách nào để tìm kích thước của tệp CSV trong Python?

Sử dụng stat () từ mô -đun HĐH, bạn có thể nhận được chi tiết của một tệp. Sử dụng thuộc tính ST_SIZE của STAT () để có được kích thước tệp. Đơn vị của kích thước tệp là byte.Use the st_size attribute of stat() method to get the file size. The unit of the file size is byte .

Làm cách nào để kiểm tra kích thước của tệp CSV?

Dung dịch.Mở tệp CSV trong Excel.Chèn một cột mới vào bên phải của cột bạn muốn kiểm tra.Đặt tên cho cột mới của bạn "Độ dài" hoặc một cái gì đó như "Cột_Name_Lpm" để giúp xác định khi sắp xếp dễ dàng hơn.

Làm cách nào để có được kích thước của một tệp trong Python?

Mô -đun HĐH Python có hàm Stat () trong đó chúng ta có thể chuyển tên tệp làm đối số.Hàm này trả về một cấu trúc tuple chứa thông tin tệp.Sau đó, chúng ta có thể lấy thuộc tính ST_SIZE của nó để có được kích thước tệp tính bằng byte.. This function returns a tuple structure that contains the file information. We can then get its st_size property to get the file size in bytes.

Làm cách nào để đếm số lượng hàng trong tệp CSV mà không cần mở nó?

Làm thế nào để bạn đếm các hàng trong CSV bằng gấu trúc ?..
Nhập GANDAS dưới dạng PD.# Đọc tập dữ liệu.df = pd.....
# Số lượng hàng bằng cách sử dụng .Shape [0] in (df.shape) in (df.shape [0]).
(145460, 23) 145460. (145460, 23) 145460 ..
# Số lượng hàng sử dụng Len () Print (Len (DF)) # Số lượng hàng sử dụng Len () Print (Len (DF)).
145460. 145460 ..