python 转换容量单位 实现ls -h功能
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re def size_b_to_other(size):
units = ['B', 'KB', 'MB', 'GB', 'TB']
# 处理异常
if size <= 0:
return False # 遍历单位的位置并用取整除赋值
for unit in units:
if size >= 1024:
size //= 1024
else:
size_h = '{} {}'.format(size, unit)
return size_h size_h = '{} {}'.format(size, unit)
return size_h def size_other_to_b(size, unit):
units = ['B', 'KB', 'MB', 'GB', 'TB']
# 处理异常
if size <= 0:
return False # 找出单位的索引位置
nu = units.index(unit) # 根据索引位置次幂在乘以系数
size_h = int(size) * 1024 ** nu
return int(size_h) if __name__ == '__main__':
"""
这里可以实现字节B转换其他单位或者其他单位转字节B,输入容量数字和单位后自动识别转换
格式为10000B或者10M、1gb、20kb
"""
data = input("请输要转换的容量和单位:")
# 忽略大小写敏感
size = re.sub("\D", "", data)
size = int(size)
unit = ''.join(re.findall(r'[A-Za-z]', str.upper(data)))
if unit == "B":
result = size_b_to_other(size)
else:
# 支持单位简写
if len(unit) == 1 :
unit = unit + "B"
result = size_other_to_b(size, unit) print(result)
python 转换容量单位 实现ls -h功能的更多相关文章
- Python实现Linux命令xxd -i功能
目录 Python实现Linux命令xxd -i功能 声明 一. Linux xxd -i功能 二. xxd -i常见用途 三. 类xxd -i功能的Python实现 Python实现Linux命令x ...
- linux系统编程之文件与IO(六):实现ls -l功能
本文利用以下系统调用实现ls -l命令的功能: 1,lstat:获得文件状态, 2,getpwuid: #include <pwd.h> struct passwd *getpwuid(u ...
- Python实现给图片加水印功能
前言 最近忙得连轴转,很久没更新博客了,代码倒是没啥写,积累了好些东西,接下来一有时间就来更新吧~ 本文记录使用Python实现给图片添加水印的功能实现过程 先看效果 把公众号的封面作为素材 原图是这 ...
- Python中模块之os的功能介绍
Python中模块之os的功能介绍 1. os的变量 path 模块路径 方法:os.path 返回值:module 例如:print(os.path) >>> <module ...
- python操作三大主流数据库(6)python操作mysql⑥新闻管理后台功能的完善(增、ajax异步删除新闻、改、查)
python操作mysql⑥新闻管理后台功能的完善(增.删.改.查)安装表单验证D:\python\python_mysql_redis_mongodb\version02>pip instal ...
- Python实例--12306的抢票功能
基础知识学习 目标: 通过python程序实现自动登录下单功能 知识点: Selenium + 云打码 + Python 学习链接: 1. Python学习--Selenium模块 2. Python ...
- python模块之importlib(py3中功能有明显加强)
# -*- coding: utf-8 -*-#python 27#xiaodeng#python模块之importlib(py3中功能有明显加强)
- python转换已转义的字符串
python转换已转义的字符串 有时我们可能会获取得以下这样的字符串: >>> a = '{\\"name\\":\\"michael\\"} ...
- Python实现字符串与数组相互转换功能示例
Python实现字符串与数组相互转换功能示例 本文实例讲述了Python实现字符串与数组相互转换功能.分享给大家供大家参考,具体如下: 字符串转数组 str = '1,2,3' arr = s ...
随机推荐
- make -j8以及linux下查看cpu的核数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- 移植 iperf 网络性能测试工具到 Android-P
. . . . . 新开发板使用了 Android-P 的方案,WiFi 刚刚调通,为了测试 WiFi 稳定性,需要使用 iperf 工具.但 Android 并没有提供这个工具,只能自己移植一份了. ...
- stl综合
区别: List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]. Vector ...
- 集合的最大缺点是无法进行类型判定(这个缺点在JAVA1.5中已经解决),这样就可能出现因为类型不同而出现类型错误。
集合的最大缺点是无法进行类型判定(这个缺点在JAVA1.5中已经解决),这样就可能出现因为类型不同而出现类型错误. 解决的方法是添加类型的判断. LinkedList接口(在代码的使用过程中 ...
- IntelliJ IDEA(2018)安装和破解
IDEA 全称 IntelliJ IDEA,是Java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本工具( ...
- redis安装相关下载
redis-4.0.1.gem下载网址 https://rubygems.org/gems/redis/ rubyinstaller-2.3.3-x64.exe下载网址 http://dl.bintr ...
- C#实现复杂XML的序列化与反序列化
已知.xml(再此命名default.xml)文件,请将其反序列化到一个实例对象. Default.XML文件如下: <?xml version="1.0" encoding ...
- mac xmind 激活
下载地址 https://www.jb51.net/softjc/624167.html 打开压缩包中的[K].zip 按里面的READ ME!.rtf 文件来操作 嗯,就这样
- HTTP 请求头 WIKI 地址
https://en.wikipedia.org/wiki/List_of_HTTP_header_fields
- Java设计模式系列之装饰者模式
装饰者模式的定义 动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案 装饰者模式的UML类图 一般来说装饰者模式有下面几个参与者: Component:装饰者和被装饰者共同 ...