如何找到目录中的文件数?
How can I find the number of files within a directory?
我想知道如何找到某个文件夹中的文件数量。
例如,在这个包含大约 1000 excel 个文件的文件中:
from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
谢谢。
import os
os.system('ls /etc | wc -l')
https://devconnected.com/how-to-count-files-in-directory-on-linux/
你可以使用这个:
import os
import glob
files = 0
folder_path = 'your path'
for filename in glob.glob(os.path.join(folder_path, '*.xls')): # .xls for example
files += 1
这是我放在一起的一个小函数,它将列出给定文件夹中的所有文件。然后,您可以使用列表的长度来查看有多少个,或者如果您想对它们执行任何操作,则循环遍历列表:
import os
def list_files(folder, extensions=None):
file_list = []
all_files = os.listdir(folder)
for name in all_files:
if extensions is not None:
for ext in extensions:
if name.endswith(ext):
file_list.append(f'{folder}{os.sep}{name}')
else:
file_list.append(f'{folder}{os.sep}{name}')
return file_list
if __name__ == '__main__':
all_files = list_files('C:/Users/Jonas/Desktop/Test')
print('total files: ')
print(len(all_files))
all_excel_files = list_files('C:/Users/Jonas/Desktop/Test', ['xlsx', 'xls', 'xlsm'])
print('excel files:')
print(len(all_excel_files))
from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
excelFiles = fileDir.rglob('*.xl*')
print(len(list(excelFiles)))
>>> 3
如果你需要所有文件的数量,你可以这样做:
from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
print(len[f for f in fileDir.iterdir()])
如果您需要根据名称进行过滤,可以在 f.name
上添加条件,或者使用 fileDir.glob()
或 fileDir.rglob()
,就像其他人建议的那样。例如,
from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
print(len[f for f in fileDir.iterdir() if len(f.name) < 10])
我想知道如何找到某个文件夹中的文件数量。 例如,在这个包含大约 1000 excel 个文件的文件中:
from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
谢谢。
import os
os.system('ls /etc | wc -l')
https://devconnected.com/how-to-count-files-in-directory-on-linux/
你可以使用这个:
import os
import glob
files = 0
folder_path = 'your path'
for filename in glob.glob(os.path.join(folder_path, '*.xls')): # .xls for example
files += 1
这是我放在一起的一个小函数,它将列出给定文件夹中的所有文件。然后,您可以使用列表的长度来查看有多少个,或者如果您想对它们执行任何操作,则循环遍历列表:
import os
def list_files(folder, extensions=None):
file_list = []
all_files = os.listdir(folder)
for name in all_files:
if extensions is not None:
for ext in extensions:
if name.endswith(ext):
file_list.append(f'{folder}{os.sep}{name}')
else:
file_list.append(f'{folder}{os.sep}{name}')
return file_list
if __name__ == '__main__':
all_files = list_files('C:/Users/Jonas/Desktop/Test')
print('total files: ')
print(len(all_files))
all_excel_files = list_files('C:/Users/Jonas/Desktop/Test', ['xlsx', 'xls', 'xlsm'])
print('excel files:')
print(len(all_excel_files))
from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
excelFiles = fileDir.rglob('*.xl*')
print(len(list(excelFiles)))
>>> 3
如果你需要所有文件的数量,你可以这样做:
from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
print(len[f for f in fileDir.iterdir()])
如果您需要根据名称进行过滤,可以在 f.name
上添加条件,或者使用 fileDir.glob()
或 fileDir.rglob()
,就像其他人建议的那样。例如,
from pathlib import Path
fileDir = Path("C:/Users/Jonas/Desktop/Test")
print(len[f for f in fileDir.iterdir() if len(f.name) < 10])