python如何读取文件大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何读取文件大小相关的知识,希望对你有一定的参考价值。

读取一个图像文件、或者文字文件。
想要得到这个文件的大小。怎么获得呢?

  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 os

filePath=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如何读取文件大小的主要内容,如果未能解决你的问题,请参考以下文章

python 如何读取大文件

python读取大文件

python 生成器按指定大小读取文件

Python如何读取巨大的二进制文件(> 25GB)?

python读取16G文件CSV数据。

python读取16G文件CSV数据。