python如何读取文件大小
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何读取文件大小相关的知识,希望对你有一定的参考价值。
读取一个图像文件、或者文字文件。
想要得到这个文件的大小。怎么获得呢?
[python] view plaincopyimport os
from os.path import join, getsize
def getdirsize(dir):
size = 0L
for root, dirs, files in os.walk(dir):
size += sum([getsize(join(root, name)) for name in files])
return size
if '__name__' == '__main__':
filesize = getdirsize(r'c:\windows')
print 'There are %.3f' % (size/1024/1024), 'Mbytes in c:\\windows' 参考技术A
你好:
具体的代码如下:
import osfilePath=r"C:\\Users\\Administrator\\Desktop\\Data\\Modify\\aa\\Excel"
for r,ds,fs in os.walk(filePath):
for f in fs:
print os.path.join(r,f),
size=os.path.getsize(os.path.join(r,f))
print 'There are %f K'% (size/1024.0) 参考技术B 用 os.path.getsize,参数是文件路径。
如何在 Python 中确定“单词”的大小
【中文标题】如何在 Python 中确定“单词”的大小【英文标题】:How to determine 'word' size in Python 【发布时间】:2011-10-18 14:21:32 【问题描述】:我需要知道 Python 中“单词”中的字节数。我需要这个的原因是我需要从文件中读取的字数;如果我知道一个单词的字节数,我可以使用file.read(num_bytes)
函数从文件中读取适当的字节数。
如何确定一个字的字节数?
【问题讨论】:
定义“单词”。你指的是记忆单位还是语言概念? 我没有指定。我的意思是内存单元,我猜它在 Python 中是未定义的,正如@TokenMacGuy 所说的那样。 一个单词的字节数应该由文件格式决定,而不是Python。您应该查看创建该文件的应用程序。 @Jeremy TokenMacGuy 是正确的,Python 中没有标准词。不同的文件/平台会有不同的行为。 然而,“地址大小”有一个定义明确的概念,接受的答案报告了它,但可能与文件中可以找到的数据完全没有关系(除非在/sys
或 /proc
在具有 sysfs/procfs 的 Linux 系统上公开二进制地址值)
【参考方案1】:
你可以使用platform.architecture
函数:
>>> import platform
>>> platform.architecture()
('64bit', '')
注意同一页的注释:
注意在 Mac OS X(可能还有其他平台)上,可执行文件可能是包含多种架构的通用文件。 要获取当前解释器的“64位”,查询sys.maxsize属性更可靠:
is_64bits = sys.maxsize > 2**32
请记住,这给出了编译 python 解释器的字长。如果python在32位模式下编译,你可以在64位主机上获得32的值。
如果文件由不同的可执行文件生成并且您有权访问此可执行文件,则可以使用platform.architecture
函数的第一个可选参数:
>>> p.architecture('/path/to/executable')
('32bit', '')
【讨论】:
【参考方案2】:Python 中没有“字”的概念,当您从文件中读取二进制数据时,您可以明确说明一次应该读取多少字节。
就编译器和/或平台而言,“WORD”通常确定基本数据单元的大小。而且 Python 独立于那种东西 :)
【讨论】:
【参考方案3】:对于单词是什么,并没有真正合理的定义;除了某些架构将某些字节数称为“字”(x86 调用 2 个字节一个字,PPC 调用 4 个字节一个字),但除了这个任意值之外没有太大意义。
也许最简单的解决方案就是只使用struct
模块;例如,'h'
格式表示有符号短(这与英特尔对“单词”的定义合理地一致)。所以你可以这样做:
>>> import struct
>>> f = file('.vimrc')
>>> struct.unpack('h', f.read(struct.calcsize('h')))
(8226,)
>>>
【讨论】:
【参考方案4】:我需要知道 Python 中“单词”的字节数。我的原因 需要这是我需要从文件中读取的字数
然后您需要询问编写文件的人。它与 Python 无关,与实际文件格式有关。顺便说一句,将文件定义为单词序列是很奇怪的。它很可能是一个 16 位或 32 位整数的序列,或者它确实是文本意义上的单词,在这种情况下,您实际上是在扫描文件以查找分隔符之间的标记。
【讨论】:
【参考方案5】:这样的事情怎么样:
def machine_word_size():
import sys
num_bytes = 0
maxint = sys.maxint
while maxint > 0:
maxint = maxint >> 8
num_bytes += 1
return num_bytes
【讨论】:
【参考方案6】:也许以下内容可能是相关且有用的:假设您检查 32 位。看看 (-1)
【讨论】:
以上是关于python如何读取文件大小的主要内容,如果未能解决你的问题,请参考以下文章