Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

Làm cách nào để đếm các tệp trong một thư mục? Điều này tính chính thư mục là một tệp:

len(glob.glob('*'))

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

Mateen Ulhaq

22.6K16 Huy hiệu vàng87 Huy hiệu bạc128 Huy hiệu đồng16 gold badges87 silver badges128 bronze badges

Hỏi ngày 13 tháng 4 năm 2010 lúc 18:38Apr 13, 2010 at 18:38

Prosseekprosseeekprosseek

175K201 Huy hiệu vàng555 Huy hiệu bạc855 Huy hiệu Đồng201 gold badges555 silver badges855 bronze badges

1

import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
4 sẽ hiệu quả hơn một chút so với sử dụng
import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
5. Để kiểm tra xem tên tệp là một tệp thông thường (chứ không phải thư mục hoặc thực thể khác), hãy sử dụng
import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
6:

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])

Đã trả lời ngày 13 tháng 4 năm 2010 lúc 18:43Apr 13, 2010 at 18:43

Daniel Stutzbachdaniel StutzbachDaniel Stutzbach

71.9K17 Huy hiệu vàng85 Huy hiệu bạc76 Huy hiệu đồng17 gold badges85 silver badges76 bronze badges

10

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

bryant1410

5.0424 Huy hiệu vàng38 Huy hiệu bạc38 Huy hiệu đồng4 gold badges38 silver badges38 bronze badges

Đã trả lời ngày 29 tháng 11 năm 2011 lúc 13:16Nov 29, 2011 at 13:16

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

4

Đối với tất cả các loại tệp, bao gồm các thư mục con (Python 2):

import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files

Chỉ các tệp (tránh các thư mục con): (avoiding subdirectories):

import os

onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
print len(onlyfiles)

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

Mattdmo

98.4K20 Huy hiệu vàng237 Huy hiệu bạc228 Huy hiệu Đồng20 gold badges237 silver badges228 bronze badges

Đã trả lời ngày 8 tháng 7 năm 2015 lúc 15:33Jul 8, 2015 at 15:33

4

Đây là nơi FNMatch rất tiện dụng:

import fnmatch

print len(fnmatch.filter(os.listdir(dirpath), '*.txt'))

Thông tin chi tiết hơn: http://docs.python.org/2/l Library/fnmatch.html

Đã trả lời ngày 31 tháng 5 năm 2013 lúc 20:55May 31, 2013 at 20:55

Ngeekngeekngeek

7.56311 Huy hiệu vàng35 Huy hiệu bạc42 Huy hiệu đồng11 gold badges35 silver badges42 bronze badges

1

Nếu bạn muốn đếm tất cả các tệp trong thư mục - bao gồm các tệp trong các thư mục con, cách pythonic nhất là:

import os

file_count = sum(len(files) for _, _, files in os.walk(r'C:\Dropbox'))
print(file_count)

Chúng tôi sử dụng tổng nhanh hơn so với việc thêm số lượng tệp (thời gian chờ xử lý) một cách rõ ràng

Đã trả lời ngày 21 tháng 12 năm 2017 lúc 17:57Dec 21, 2017 at 17:57

Mr_and_Mrs_DMr_and_Mrs_DMr_and_Mrs_D

30.7K37 Huy hiệu vàng174 Huy hiệu bạc353 Huy hiệu đồng37 gold badges174 silver badges353 bronze badges

4

Ngắn và đơn giản

import os
directory_path = '/home/xyz/'
No_of_files = len(os.listdir(directory_path))

Đã trả lời ngày 17 tháng 9 năm 2020 lúc 16:48Sep 17, 2020 at 16:48

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

2

Tôi ngạc nhiên khi không ai đề cập đến

import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
7:

def count_files(dir):
    return len([1 for x in list(os.scandir(dir)) if x.is_file()])

Đã trả lời ngày 18 tháng 5 năm 2017 lúc 9:24May 18, 2017 at 9:24

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

Qedqedqed

21.7K19 Huy hiệu vàng116 Huy hiệu bạc189 Huy hiệu đồng19 gold badges116 silver badges189 bronze badges

1

Câu trả lời với Pathlib và không tải toàn bộ danh sách vào bộ nhớ:

from pathlib import Path

path = Path('.')

print(sum(1 for _ in path.glob('*')))  # Files and folders, not recursive
print(sum(1 for _ in path.glob('**/*')))  # Files and folders, recursive

print(sum(1 for x in path.glob('*') if x.is_file()))  # Only files, not recursive
print(sum(1 for x in path.glob('**/*') if x.is_file()))  # Only files, recursive

Đã trả lời ngày 7 tháng 8 năm 2020 lúc 18:08Aug 7, 2020 at 18:08

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

PaulpaulPaul

5.3233 Huy hiệu vàng33 Huy hiệu bạc65 Huy hiệu Đồng3 gold badges33 silver badges65 bronze badges

1

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
0

Đã trả lời ngày 1 tháng 7 năm 2014 lúc 10:18Jul 1, 2014 at 10:18

Rashrashrash

1.3081 Huy hiệu vàng12 Huy hiệu bạc17 Huy hiệu đồng1 gold badge12 silver badges17 bronze badges

1

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
1

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

Đã trả lời ngày 20 tháng 2 năm 2013 lúc 12:04Feb 20, 2013 at 12:04

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

Ninjrokninjrokninjrok

1701 Huy hiệu bạc8 Huy hiệu đồng1 silver badge8 bronze badges

Điều này sử dụng

import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
8 và hoạt động cho bất kỳ thư mục nào:

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
2

Điều này có thể được đơn giản hóa với một máy phát và thực hiện nhanh hơn một chút với:

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
3

Đã trả lời ngày 13 tháng 4 năm 2010 lúc 18:46Apr 13, 2010 at 18:46

Joaquinjoaquinjoaquin

80.1K28 Huy hiệu vàng137 Huy hiệu bạc151 Huy hiệu đồng28 gold badges137 silver badges151 bronze badges

0

Mặc dù tôi đồng ý với câu trả lời được cung cấp bởi @danielstutzbach:

import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
4 sẽ hiệu quả hơn một chút so với sử dụng
import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
5.

Tuy nhiên, một độ chính xác bổ sung, nếu bạn muốn đếm số lượng tệp cụ thể trong thư mục, bạn muốn sử dụng

import os

onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
print len(onlyfiles)
1. Chẳng hạn, nếu bạn đếm tất cả các tệp PDF trong một thư mục bạn muốn sử dụng:

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
4

Đã trả lời ngày 18 tháng 10 năm 2018 lúc 9:17Oct 18, 2018 at 9:17

LbeslbesLBes

3,3161 Huy hiệu vàng31 Huy hiệu bạc60 Huy hiệu đồng1 gold badge31 silver badges60 bronze badges

Đây là một giải pháp dễ dàng đếm số lượng tệp trong một thư mục chứa các bộ phụ. Nó có thể có ích:

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
5

Bạn sẽ nhận được một đầu ra tương tự như thế này (tất nhiên là với các trình giữ chỗ đã thay đổi):

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
6

Đã trả lời ngày 11 tháng 11 năm 2020 lúc 2:56Nov 11, 2020 at 2:56

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

MLDEVMLDEVMLDev

3164 Huy hiệu bạc8 Huy hiệu Đồng4 silver badges8 bronze badges

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
7

Nang từ bài đăng này

Đã trả lời ngày 13 tháng 4 năm 2010 lúc 18:48Apr 13, 2010 at 18:48

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

Kristian Damiankristian DamianKristian Damian

1.3553 huy hiệu vàng21 Huy hiệu bạc43 Huy hiệu đồng3 gold badges21 silver badges43 bronze badges

1

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
8

Đã trả lời ngày 13 tháng 4 năm 2010 lúc 22:31Apr 13, 2010 at 22:31

Tzottzottzot

89,8K29 Huy hiệu vàng138 Huy hiệu bạc201 Huy hiệu đồng29 gold badges138 silver badges201 bronze badges

Luke's Code Reformat.

import os, os.path

# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])

# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
9

Đã trả lời ngày 30 tháng 5 năm 2012 lúc 8:26May 30, 2012 at 8:26

Okobakaokobakaokobaka

5464 Huy hiệu bạc8 Huy hiệu Đồng4 silver badges8 bronze badges

0

Dưới đây là một lệnh một dòng đơn giản mà tôi thấy hữu ích:

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
0

Đã trả lời ngày 9 tháng 5 năm 2016 lúc 18:23May 9, 2016 at 18:23

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

1

một lớp lót và đệ quy:

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
1

Đã trả lời ngày 11 tháng 7 năm 2020 lúc 17:14Jul 11, 2020 at 17:14

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

Juan Isazajuan Isazajuan Isaza

3.3513 huy hiệu vàng28 Huy hiệu bạc36 Huy hiệu đồng3 gold badges28 silver badges36 bronze badges

Tôi đã sử dụng

import os

onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
print len(onlyfiles)
2 cho cấu trúc thư mục tương tự

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
2

Cả hai tùy chọn sau trở lại 4 (như mong đợi, tức là không tự đếm các thư mục con)

  • import os
    
    onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
    print len(onlyfiles)
    
    3
  • import os
    
    onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
    print len(onlyfiles)
    
    4

Đã trả lời ngày 24 tháng 11 năm 2016 lúc 6:45Nov 24, 2016 at 6:45

user799188user799188user799188

13.6K4 Huy hiệu vàng33 Huy hiệu bạc36 Huy hiệu đồng4 gold badges33 silver badges36 bronze badges

Nó đơn giản:

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
3

Nó chỉ đơn giản là đếm số lượng tệp trong thư mục, tôi đã sử dụng kỹ thuật hiểu danh sách để lặp lại thông qua thư mục cụ thể trả lại tất cả các tệp. "Len (danh sách trả về)" Trả về số lượng tệp.

Đã trả lời ngày 29 tháng 7 năm 2018 lúc 10:01Jul 29, 2018 at 10:01

2

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
4

Đã trả lời ngày 29 tháng 9 năm 2014 lúc 5:59Sep 29, 2014 at 5:59

Mohit dabasmohit dabasMohit Dabas

2.3131 Huy hiệu vàng17 Huy hiệu bạc12 Huy hiệu đồng1 gold badge17 silver badges12 bronze badges

1

Nếu bạn đang sử dụng vỏ tiêu chuẩn của hệ điều hành, bạn có thể nhận được kết quả nhanh hơn nhiều thay vì sử dụng cách pythonic tinh khiết.

Ví dụ cho Windows:

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
5

Đã trả lời ngày 8 tháng 4 năm 2015 lúc 13:38Apr 8, 2015 at 13:38

1

Tôi đã tìm thấy một câu trả lời khác có thể đúng như câu trả lời được chấp nhận.

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
6

Đã trả lời ngày 19 tháng 4 năm 2015 lúc 10:04Apr 19, 2015 at 10:04

Ismail IsmailIsmail

391 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges

Một chức năng tiện ích đơn giản tôi đã viết sử dụng

import os

onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
print len(onlyfiles)
5 thay vì
import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
4.

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
7

Lợi ích chính là, nhu cầu

import os

onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
print len(onlyfiles)
7 được loại bỏ và thay thế bằng ví dụ
import os

onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
print len(onlyfiles)
8 của
import os

onlyfiles = next(os.walk(directory))[2] #directory is your directory path as string
print len(onlyfiles)
9 cũng loại bỏ sự cần thiết của
import fnmatch

print len(fnmatch.filter(os.listdir(dirpath), '*.txt'))
0 như trong các câu trả lời khác.

Đã trả lời ngày 27 tháng 9 năm 2020 lúc 11:27Sep 27, 2020 at 11:27

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

KinyugokinyugoKinyugo

3992 Huy hiệu bạc11 Huy hiệu đồng2 silver badges11 bronze badges

Đơn giản hơn:

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
8

Đã trả lời ngày 12 tháng 1 lúc 5:54Jan 12 at 5:54

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

Mayur Guptamayur GuptaMayur Gupta

2692 Huy hiệu bạc14 Huy hiệu Đồng2 silver badges14 bronze badges

Tôi đã làm điều này và điều này đã trả lại số lượng tệp trong thư mục (Attack_data) ... điều này hoạt động tốt.

import os

_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
9

Jkalden

1.5094 huy hiệu vàng23 Huy hiệu bạc25 Huy hiệu đồng4 gold badges23 silver badges25 bronze badges

Đã trả lời ngày 11 tháng 1 năm 2017 lúc 15:05Jan 11, 2017 at 15:05

0

Tôi đã giải quyết vấn đề này trong khi tính toán số lượng tệp trong thư mục Google Drive thông qua Google Colab bằng cách hướng bản thân vào thư mục thư mục theo

import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
0

Người dùng bình thường có thể thử

import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
1

Đã trả lời ngày 6 tháng 7 năm 2020 lúc 23:37Jul 6, 2020 at 23:37

Hướng dẫn how do you count files in python? - làm thế nào để bạn đếm các tập tin trong python?

MaheepmaheepMaheep

5996 Huy hiệu bạc5 Huy hiệu Đồng6 silver badges5 bronze badges

Chuyển đổi thành danh sách sau đó bạn có thể len

len(list(glob.glob('*')))

Đã trả lời ngày 7 tháng 12 năm 2021 lúc 23:53Dec 7, 2021 at 23:53

Tôi thấy rằng đôi khi tôi không biết liệu tôi sẽ nhận được tên tệp hay đường dẫn đến tệp. Vì vậy, tôi đã in đầu ra giải pháp OS Walk:

import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
2

out:

import os

lst = os.listdir(directory) # your directory path
number_files = len(lst)
print number_files
3

Lưu ý bạn có thể phải sắp xếp.