Как получить индивидуальный размер файла из cwd в Python - PullRequest
1 голос
/ 24 октября 2019

все еще очень плохо знаком с программированием и изучением основ, любая помощь очень ценится.

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:

Ответы [ 3 ]

1 голос
/ 24 октября 2019

Этот код должен делать то, что ожидается:

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

Вывод:

('test.py', 215)
('test.sh', 51)
1 голос
/ 24 октября 2019

Пока другие ответы работают, они также включают каталоги в список «файлов». Если вы хотите исключить их, вы можете использовать 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
0 голосов
/ 24 октября 2019

вы можете подготовить словарь с {имя_файла: размер файла} следующим образом:

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}

Желает ли он результата?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...