os.stat 没有给我正确的输出,每个文件只得到 8192 字节。代码如下
import os
path = "C:\\"
filelist = os.listdir(path)
for i in filelist:
if os.path.isdir(os.path.join(path, i)):
print os.path.join(path, i), "is DIR"
else:
# fs = filesize
fs = os.stat(path).st_size
# fs = os.path.getsize(path)
print os.path.join(path, i), "size is", fs
这是输出:
C:\$Recycle.Bin is DIR
C:\Config.Msi is DIR
C:\Documents and Settings is DIR
C:\hiberfil.sys size is 8192
C:\pagefile.sys size is 8192
C:\PerfLogs is DIR
C:\Program Files is DIR
C:\Program Files (x86) is DIR
C:\ProgramData is DIR
C:\Python27 is DIR
C:\Recovery is DIR
C:\shared.log size is 8192
C:\System Volume Information is DIR
C:\Users is DIR
C:\vcredist_x86.log size is 8192
C:\Windows is DIR
为什么最大的数是8192?所有不是 dir 的文件的大小都比该文件大得多。 os.stat(path).st_size 和 os.path.getsize(path) 的输出相同。提前致谢。
最佳答案
你忘了os.path.join(path, i)
使用 os.stat()
检查文件大小时,所以你总是得到 C:\的大小(这是 8192,Windows 特定的东西)。固定脚本:
import os
path = "C:\\"
filelist = os.listdir(path)
for i in filelist:
filepath = os.path.join(path, i)
if os.path.isdir(filepath):
print filepath, "is DIR"
else:
# fs = filesize
fs = os.stat(filepath).st_size
print filepath, "size is", fs
关于python - OS.STAT().ST_SIZE 在 Python 中给出了不正确的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40783029/