我在Windows中编写Python脚本。 我想根据文件大小做一些事情。 例如,如果大小大于0,我将向某人发送电子邮件,否则继续其他操作。

如何检查文件大小?


#1楼

其他答案适用于实际文件,但是如果您需要适用于“类文件的对象”的文件,请尝试以下操作:

# f is a file-like object.
f.seek(0, os.SEEK_END)
size = f.tell()

在我有限的测试中,它适用于真实文件和StringIO。 (Python 2.7.3。)当然,“类文件对象” API并不是严格的接口,但是API文档建议类文件对象应支持seek()tell()

编辑

此文件与os.stat()之间的另一个区别是,即使您没有读取文件的权限,也可以对文件进行stat() 。 显然,除非您具有阅读许可,否则搜索/讲述方法将无法工作。

编辑2

在乔纳森的建议下,这是一个偏执的版本。 (以上版本将文件指针留在文件的末尾,因此,如果您尝试从文件中读取文件,则将返回零字节!)

# f is a file-like object.
old_file_position = f.tell()
f.seek(0, os.SEEK_END)
size = f.tell()
f.seek(old_file_position, os.SEEK_SET)

#2楼

使用os.path.getsize

>>> import os
>>> b = os.path.getsize("/path/isa_005.mp3")
>>> b
2071611L

输出以字节为单位。


#3楼

使用os.stat ,并使用结果对象的st_size成员:

>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926L

输出以字节为单位。


#4楼

import osdef convert_bytes(num):"""this function will convert bytes to MB.... GB... etc"""for x in ['bytes', 'KB', 'MB', 'GB', 'TB']:if num < 1024.0:return "%3.1f %s" % (num, x)num /= 1024.0def file_size(file_path):"""this function will return the file size"""if os.path.isfile(file_path):file_info = os.stat(file_path)return convert_bytes(file_info.st_size)# Lets check the file size of MS Paint exe
# or you can use any file path
file_path = r"C:\Windows\System32\mspaint.exe"
print file_size(file_path)

结果:

6.1 MB

#5楼

使用pathlib ( 在Python 3.4中添加或在PyPI上可用的pathlib ):

from pathlib import Path
file = Path() / 'doc.txt'  # or Path('./doc.txt')
size = file.stat().st_size

这实际上只是os.stat周围的接口,但是使用pathlib提供了一种访问其他文件相关操作的简便方法。


#6楼

严格遵循这个问题,python代码(+伪代码)将是:

import os
file_path = r"<path to your file>"
if os.stat(file_path).st_size > 0:<send an email to somebody>
else:<continue to other things>

#7楼

如果我想从bytes转换为任何其他单位,我将使用一个bitshift技巧。 如果您将右移10 ,则基本上将其移位一个顺序(多个)。

示例: 5GB are 5368709120 bytes

print (5368709120 >> 10)  # 5242880 kilo Bytes (kB)
print (5368709120 >> 20 ) # 5120 Mega Bytes(MB)
print (5368709120 >> 30 ) # 5 Giga Bytes(GB)

#8楼

#Get file size , print it , process it...
#Os.stat will provide the file size in (.st_size) property.
#The file size will be shown in bytes.import osfsize=os.stat('filepath')
print('size:' + fsize.st_size.__str__())#check if the file size is less than 10 MBif fsize.st_size < 10000000:process it ....

如何在python中检查文件大小?相关推荐

  1. python中获取文件大小_如何在Python中获取文件大小

    python中获取文件大小 We can get file size in Python using the os module. 我们可以使用os模块在Python中获取文件大小. Python中的 ...

  2. 如何用python进行相关性分析_如何在python中检查连续变量和分类变量之间的相关性?...

    将分类变量转换为虚拟变量,并将变量放在numpy.array中.例如: data.csv:age,size,color_head 4,50,black 9,100,blonde 12,120,brow ...

  3. python 输入数字变成密码_如何在python中检查数字的“密码”

    我建议使用sets和stdlib中的string包作为可接受字符的列表.在 我还建议进行一点重构,以删除大量带有if / else分支的嵌套.在import string upper = set(li ...

  4. python字符串转浮点数_如何在Python中检查字符串是否为数字(浮点数)?

    python字符串转浮点数 Using python it is very to interconvert the datatypes of a variable. A string can be e ...

  5. python分类变量相关性分析_如何在python中检查连续变量和分类变量之间的相关性?...

    将分类变量转换为伪变量here,并将变量放入numpy.array中.例如: data.csv:age,size,color_head 4,50,black 9,100,blonde 12,120,b ...

  6. 在Python中获取文件大小? [重复]

    本文翻译自:Getting file size in Python? [duplicate] This question already has an answer here: 这个问题在这里已有答案 ...

  7. 如何在Python中声明一个数组?

    如何在Python中声明数组? 我在文档中找不到任何对数组的引用. #1楼 这个怎么样... >>> a = range(12) >>> a [0, 1, 2, 3 ...

  8. 如何在Python中解析YAML文件

    如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...

  9. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

最新文章

  1. 开发日记-20190506 关键词 汇编语言(五)Hello World!
  2. Mardown(或Latex)换行
  3. win7 x64 系统无故卡死 360惹的祸 搞了我大半年
  4. boost::safe_numerics模块实现数组索引值可以超出数组边界的测试程序
  5. Php面试题之背人过桥,梦见背人过桥好不好?
  6. 金山云纳斯达克敲钟上市 不负时代的机遇
  7. JavaScript:windows关机效果
  8. 求数组中最长连续递增子序列
  9. i5功耗最低的cpu_近年最大飞跃 Intel第11代低功耗酷睿处理器官宣:集显2倍、AI乘4...
  10. 0909操作系统初感
  11. ♥️Javascript之DOM♥️
  12. NYOJ234-吃土豆(双层DP)
  13. 12.10.3 冻结窗格
  14. 五个核心能力打造普惠金融商业化发展模式
  15. 大数据治理——《华为数据之道》
  16. 表格数据按行为单位查重
  17. python_6_17
  18. LaTex支持中文的三种方式
  19. xgboost的调优
  20. Pro Tools 2018.x版本安装/升级需知

热门文章

  1. docker命令易错点整理
  2. java 对话框打开与保存
  3. JAVA正则表达式4种常用功能 [转]
  4. spring boot 配置
  5. 移动端页面开发通用问题解决方案
  6. leetcode 503. 下一个更大元素 II
  7. IONIC打包安卓遇到COM.ANDROID.SUPPORT:SUPPORT-V4错误的解决办法
  8. Java 动态代理机制详解
  9. 安装db2 提示不是有效的win32应用程序?
  10. dedecms 自定义表单提交后的跳转链接修改方法