python中的sys模块和os模块


Posted in Python onMarch 20, 2022

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)

执行过程:后面添加要删除的目录路径

python中的sys模块和os模块

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)

到此这篇关于python中的sys模块和os模块的文章就介绍到这了,更多相关python模块内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Flask之flask-script模块使用
Jul 26 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
我就是这样学习Python中的列表
Jun 02 Python
pycharm配置git(图文教程)
Aug 16 Python
用python3读取python2的pickle数据方式
Dec 25 Python
django 取消csrf限制的实例
Mar 13 Python
Python使用Chrome插件实现爬虫过程图解
Jun 09 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
python之语音识别speech模块
Sep 09 Python
python 实现压缩和解压缩的示例
Sep 22 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
flask项目集成swagger的方法
Dec 09 Python
python_tkinter事件类型详情
Mar 20 #Python
再谈python_tkinter弹出对话框创建
python_tkinter弹出对话框创建
Mar 20 #Python
Python读写yaml文件
Mar 20 #Python
PO模式在selenium自动化测试框架的优势
Python IO文件管理的具体使用
Python实现Excel文件的合并(以新冠疫情数据为例)
You might like
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
分享PHP守护进程类
2015/12/30 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
判断单链表中是否存在环
2012/07/16 面试题
EJB实例的生命周期
2016/10/28 面试题
销售人员自我评价怎么写
2013/09/19 职场文书
通信生自我鉴定
2014/01/18 职场文书
民政局个人整改措施
2014/09/24 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL