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 相关文章推荐
python登录并爬取淘宝信息代码示例
Dec 09 Python
用python写扫雷游戏实例代码分享
May 27 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 Python
python进行TCP端口扫描的实现
Dec 21 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
python爬虫添加请求头代码实例
Dec 28 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
Feb 12 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 Python
python Cartopy的基础使用详解
Nov 01 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php中static静态变量的使用方法详解
2010/06/04 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
Smarty3配置及入门语法
2017/02/22 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
javascript常用函数(2)
2015/11/05 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
Python中的ConfigParser模块使用详解
2015/05/04 Python
python处理大数字的方法
2015/05/27 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
中专自荐信
2013/10/13 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
Python IO文件管理的具体使用
2022/03/20 Python
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL