python中的sys模块和os模块
作者:手可摘星辰。 发布时间:2021-07-06 00:43:17
1.sys模块
sys模块的常见函数列表:
sys.argv
: 实现从程序外部向程序传递参数。sys.exit([arg])
: 程序中间的退出,arg=0为正常退出。sys.getdefaultencoding()
: 获取系统当前编码,一般默认为ascii。sys.setdefaultencoding()
: 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )sys.getfilesystemencoding()
: 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.sys.path
: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。sys.platform
: 获取当前系统平台。sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们
import sys
# 获取一个值的应用计数
a = [11,22,33]
b = a
print(sys.getrefcount(a))
# python默认支持的递归数量
v1 = sys.getrecursionlimit()
print(v1)
#输入输出(两个不会换行)
sys.stdout.write("你好")
sys.stdout.write("啊")
import sys
# 获取脚本路径
print(sys.argv)
import sys
# 循环输出python,可以导入模块的路径
for i in sys.path:
print(i)
import sys
# 添加新的模块导入路径
sys.path.append('D:\\')
# 在D:\\路径下有一个qqq.py文件,可以导入使用了
import qqq
注意:模块传参数(让用户执行脚本传入要删除的文件路径,在内部帮助用户将目录删除。)
import sys
import shutil
# 获取用户执行脚本时,传入的参数
path = sys.argv[1]
# 删除路径目录
shutil.rmtree(path)
执行过程:后面添加要删除的目录路径
print补充:
# \n 换行
# \t 制表符
# \r 回到当前行的起始位置
print('123\r',end = '')# 打印完123,光标回到起始位置,又写下面的456
print('456',end = '')
应用(进度条的百分比数值增长)
import time
# 应用:在cmd中运行
for i in range(1,101):
msg = "%s%%\r" %i
print(msg,end = '')
time.sleep(0.05)
2.os模块(和操作系统相关数据)
os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,这时就离不了os模块
import os
# 获取文件大小(字节)
file_size= os.stat('123.gif').st_size
print(file_size)
import os
# 判断路径是否存在,如果存在返回True,否则返回False
qqq = os.path.exists('D:11231')
print(qqq)
import os
qqq = '123.gif'
# 传递一个相对路径可以获取绝对路径
v1 = os.path.abspath(qqq)
print(v1)
import os
qqq = r'E:\PyCharm\lol\123.gif'
# 可以获取路径的上一级目录
v = os.path.dirname(qqq)
print(v)
import os
qqq = 'E:\PyCharm\lol'
www = '123.txt'
# 路径拼接
result = os.path.join(qqq,www)
result1 = os.path.join(qqq,'456.txt')
print(result)
print(result1)
import os
# 显示路径下的全部的文件(一层)
qqq = os.listdir(r'E:\PyCharm\lol\move1')
print(qqq)
import os
qqq = os.walk(r'E:\PyCharm\lol')
for a,b,c in qqq:
# a:真正查看的目录 b:此目录下的文件夹 c:此目录下的文件
print(a,b,c)
---------------------------------------------------
import os
# 显示路径下的全部的文件(所有层)
qqq = os.walk(r'E:\PyCharm\lol')
for a,b,c in qqq:
for i in c:
path = os.path.join(a,i)
print(path)
生成文件夹:
import os
# 在脚本路径下创建名字为"wdc"的文件夹
os.mkdir('wdc')
import os
# 创建嵌套文件夹
os.makedirs(r'yhf\wdc\www')
import os
file_path = r'wdc\yhf\www.txt'
# 获取路径目录
file_folder = os.path.dirname(file_path)
# 判断路径是否存在
if not os.path.exists(file_folder):
# 如果不存,则创建路径
os.makedirs(file_folder)
else:
# 如果路径存在则给出提示
print('目录以及存在!')
重命名:
import os
# 文件夹重命名(原名,新名)
os.rename('wdc','qqq')
补充:转义
# 前面加一个'r'起到转义的作用,防止\n换行
qqq = r'E:\PyCharm\lol\n123.gif'
print(qqq)
# 双斜杠也可以起的转义的作用
qqq = 'E:\\PyCharm\\lol\\n123.gif'
print(qqq)
补充:进度条读写文件
import os
import time
# 获取文件大小(字节)
file_size= os.stat('123.gif').st_size
print(file_size)
# 一点一点读取文件
read_size = 0
with open('123.gif',mode = 'rb') as f1,open('a.png',mode = 'wb') as f2:
while read_size < file_size:
chunk = f1.read(2) #每次读8个字节
f2.write(chunk)
read_size = read_size + len(chunk)
val = int(read_size / file_size * 100)
# \r:下一次打印覆盖上一次打印的内容
print('%s%%\r' %(val), end = '')
time.sleep(0.01)
来源:https://www.cnblogs.com/wangdianchao/p/11568606.html


猜你喜欢
- WebService客户端接口调用及身份验证问题最近由于业务需求,需要实现python Webservice的服务以及接口调用。服务端代码可
- 现在我们已经知道了,fixtures是一个非常强大的功能。那么有的时候,我们可能会写一个fixture,而这个fixture所有的测试函数都
- 一、解决方案1.1 描述接口context-path后端的两个接口服务请求前缀,如下:前缀1: /bryant前缀2: /1.2 vue.c
- 一、json_encode() 对变量进行JSON编码语法:json_encode($value[,$options=0])注意: 
- pygal.style的LightColorizedStyle参数 问题在《Python编程:从入门到实践》中的使用API的案例,
- 文章先介绍了关于俄罗斯方块游戏的几个术语。边框——由10*20个空格组成,方块就落在这里面。盒子——组成方块的其中小方块,是组成方块的基本单
- 导语哈喽!我是木木子,又到了今日更新时刻!我们来看看写什么呢?小编有个好兄弟最近在追妹子,跟妹子打得火热!就差临门一脚了,这一jio我帮忙补
- 本文实例讲述了thinkphp3.x连接mysql数据库的方法。分享给大家供大家参考,具体如下:惯例配置文件:ThinkPHP/conf/c
- 绘制八个子图import matplotlib.pyplot as pltfig = plt.figure()shape=['.
- 查看Tensor尺寸及查看数据类型Tensor尺寸查看命令:x.shape例子:input = torch.randn(20,16,50,3
- 先来看javascript的直接写在了input上 <input name="pwuser" type="
- select count(*) as lot from OA_sample_check where left(ecnNO, LOCATE(&
- 如下代码,限制某个函数在某个时间段的调用次数,灵感来源:python装饰器-限制函数调用次数的方法(10s调用一次) 欢迎访问原博客中指定的
- 快排是python经典算法之一。1、下面讲解的是什么是快排和快排的图示。2、快排是一种解决排序问题的运算方法。3、快排的原理:在数组中任意选
- 大家好,之前分享过很多关于 Pandas 的文章,今天我给大家分享5个小而美的 Pandas 实战案例。内容主要分为:如何自行模拟数据多种数
- 前言:Python在人工智能,后台服务等领域中得到了广泛应用。由于python有着大量的第三方开源包以及其易用的语言特性,这门语言在数据处理
- 前言mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。错误提示:this
- 大家都知道,linux里一切皆为文件,在linux/unix的根目录下,有个/proc目录,这个/proc 是一种内核和内核模块用来向进程(
- Session作用Session的根本作用就是在服务端存储用户和服务器会话的一些信息。典型的应用有:1、判断用户是否登录。2、购物车功能。s
- 导语哈喽!大家好,我是栗子,感谢大家的支持!新的一天,新气象,程序猿们的日常开始敲敲敲,改改改——今