如何在Python中从cwd获取单个文件大小

2024-05-23 16:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

对编程和学习基础知识还是很陌生的,任何帮助都非常感谢

import os

path = os.getcwd()
print(os.listdir(path))
os.path.getsize(path)
print(os.path.getsize(path))

当我运行上述程序时,我得到以下输出:

['Lab3_Exercise1.py', 'Lab3_Exercise2.py', 'Lab3_Exercise4.py', 'Lab3_Exercose3.py']
4096

我该如何在输出中单独分离每个文件,而不是仅仅得到一个总的文件大小?如果可能的话,代码应该只包含import os模块,并且是通用的,它可以告诉任何用户当前工作目录的每个文件大小。谢谢你的帮助

输出应类似于:

file: Lab3_Exercise1.py size:
file: Lab3_Exercise2.py size:
file: Lab3_Exercise3.py size:
file: Lab3_Exercise4.py size:

Tags: pathpyimportsizeos编程fileprint
3条回答

此代码应执行预期的操作:

path = os.getcwd()
for filename in os.listdir(path):
    print(filename, int(os.path.getsize(filename)))

输出为:

('test.py', 215)
('test.sh', 51)

您可以用{filename:filesize}准备字典,如下所示:

import os

path = os.getcwd()
listfiles = os.listdir(path)

{f:os.path.getsize(f) for f in listfiles} 

像这样的输出

Out[1]:
{'GBPCAD.csv': 1946,
 'data3.xlsx': 8892,
 'sandbox2.ipynb': 41218,
 'Untitled1.ipynb': 11984,
 'res.csv': 106}

它想要结果吗

虽然其他答案有效,但它们也包括“文件”列表中的目录。如果要排除它们,可以使用os.path.isfile(f)如下所示:

import os

path = os.getcwd()
files = [f for f in os.listdir(path) if os.path.isfile(f)]
for f in  files:
    print(f, "-", os.path.getsize(f))

输出:

comb.py - 228
list_ex.py - 348
so_cwd_size.py - 145
matrix_test.py - 173
thread_test.py - 847

相关问题 更多 >