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

How to get individual File Size from cwd in 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:

你可以像这样用{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}

它想要结果吗?

此代码应符合预期:

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

输出为:

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

虽然其他答案有效,但它们还在 "files" 的列表中包含了目录。如果你想排除它们,你可以像这样使用 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