Python标准库实用功能大全——第一篇:sys与os,ψ(`∇´)ψ!

Python官方提供的不少包和模块,我们称之为标准库,python标准库会随着python解释器一直安装到你的电脑中。本文章将会介绍一些作者搜集整理的常用的标准库中的模块。

NO.1:sys

sys模块的功能很多,这里我们介绍一些比较实用的功能模块.sys提供了许多变量来处理python运行时环境的不同部分。

1.识别操作系统。

import sys

print(sys.platform)

如果是是windows平台,应该输出的是win32。其他系统请参考下表。

系统及相应执行结果。
系统执行结果
Linuxlinux
Windowswin32
Windows/Cygwincygwin
Mac OS Xdarwin

2.处理命令行参数。

sys.argv变量可以获取命令行的参数。argv是一个list类型的变量,它会返回在命令行中用户输入的参数,例如:

import sys

print(sys.argv)

我们可以在命令行终端中使用python 9.4.2.py arg1 arg2运行代码。

结果是:

['9.4.2.py','arg1','arg2']

从结果可以看到,sys.argv返回了一个列表。题目列表的第一个元素是这个文件名,第二个元素是我们运行时输入的参数的内容。

3.搜索模块的路径。

sys.path存储了python结束其需要搜索的所有路径。我们可以通过修改该变量,修改搜索模块的路径。

import sys

for path in sys.path:
    print(path)

结果如下:

C:\Users\dell\Documents\mindplus-py\environment\Python3.6.5-64\python36.zip
C:\Users\dell\Documents\mindplus-py\environment\Python3.6.5-64\DLLs
C:\Users\dell\Documents\mindplus-py\environment\Python3.6.5-64\lib
C:\Users\dell\Documents\mindplus-py\environment\Python3.6.5-64
C:\Users\dell\Documents\mindplus-py\environment\Python3.6.5-64\lib\site-packages
C:\Users\dell\Documents\mindplus-py\environment\Python3.6.5-64\lib\site-packages\win32    
C:\Users\dell\Documents\mindplus-py\environment\Python3.6.5-64\lib\site-packages\win32\lib
C:\Users\dell\Documents\mindplus-py\environment\Python3.6.5-64\lib\site-packages\Pythonwin

在不同的环境下执行的结果可能会不一样。

4.退出程序

想要退出程序的话,可以调用sys.exit函数。(0:正常退出;其他为异常)

sys模块的exit函数,通过抛出一个SystemExit异常来尝试结束程序,Python代码可以捕获这个异常来进行一些程序退出前的清理工作,也可以不退出程序。sys.exit函数同样可以带一个参数来作为程序的退出码,默认是0。

5.查找已导入的模块。

sys.modules是一个全局字典,该字典在python启动后就加载到内存中。每当程序员导入新的模块时。sys.modules就会自动记录。当二次导入该模块时,python会直接到字典中查找。从而加快了程序运行的速度。例如:

​
import sys

print(sys.modules.keys())
print(sys.modules.values())
print(sys.modules ["os"])

​

执行结果如下:

dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodin
gs', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'n
tpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', '_bootlocale', '_locale', 'encodings.gbk', '_codecs_cn', '_multibytecodec', 'pywin32_bootstrap',
 'pywin32_system32'])
dict_values([<module 'builtins' (built-in)>, <module 'sys' (built-in)>, <module '_frozen_importlib' (frozen)>, <module '_imp' (built-in)>, <module '_warnings' (built-in)>, <module 
'_thread' (built-in)>, <module '_weakref' (built-in)>, <module '_frozen_importlib_external' (frozen)>, <module 'io' (built-in)>, <module 'marshal' (built-in)>, <module 'nt' (built-
in)>, <module 'winreg' (built-in)>, <module 'zipimport' (built-in)>, <module 'encodings' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\encodings\
\__init__.py'>, <module 'codecs' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\codecs.py'>, <module '_codecs' (built-in)>, <module 'encodings.ali
ases' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\encodings\\aliases.py'>, <module 'encodings.utf_8' from 'C:\\Users\\dell\\Documents\\mindplus
-py\\environment\\Python3.6.5-64\\lib\\encodings\\utf_8.py'>, <module '_signal' (built-in)>, <module '__main__' from 'C:\\Users\\dell\\Documents\\mindplus-py\\user\\2021-08-06-14-4
1-30\\Python标准库.py'>, <module 'encodings.latin_1' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\encodings\\latin_1.py'>, <module 'io' from 'C:
\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\io.py'>, <module 'abc' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\abc
.py'>, <module '_weakrefset' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\_weakrefset.py'>, <module 'site' from 'C:\\Users\\dell\\Documents\\min
dplus-py\\environment\\Python3.6.5-64\\lib\\site.py'>, <module 'os' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\os.py'>, <module 'errno' (built
-in)>, <module 'stat' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\stat.py'>, <module '_stat' (built-in)>, <module 'ntpath' from 'C:\\Users\\del
l\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\ntpath.py'>, <module 'genericpath' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\gen
ericpath.py'>, <module 'ntpath' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\ntpath.py'>, <module '_collections_abc' from 'C:\\Users\\dell\\Docu
ments\\mindplus-py\\environment\\Python3.6.5-64\\lib\\_collections_abc.py'>, <module '_sitebuiltins' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib
\\_sitebuiltins.py'>, <module 'sysconfig' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\sysconfig.py'>, <module '_bootlocale' from 'C:\\Users\\de
ll\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\_bootlocale.py'>, <module '_locale' (built-in)>, <module 'encodings.gbk' from 'C:\\Users\\dell\\Documents\\mindplus-py
\\environment\\Python3.6.5-64\\lib\\encodings\\gbk.py'>, <module '_codecs_cn' (built-in)>, <module '_multibytecodec' (built-in)>, <module 'pywin32_bootstrap' from 'C:\\Users\\dell\
\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\site-packages\\win32\\lib\\pywin32_bootstrap.py'>, <module 'pywin32_system32' (namespace)>])
<module 'os' from 'C:\\Users\\dell\\Documents\\mindplus-py\\environment\\Python3.6.5-64\\lib\\os.py'>

由于环境不同,所以结果也可能会不同。 

NO.2:os

Python的os模块封装了操作系统的文件和目录操作。

1.获取当前文件所在目录。

import os
print(_file_)
print(os.path.dirname(_file_))

_file_是Python的内置变量,os.path.dirname(_file_))表示的是文件当前的位置,可以替换成别的文件。

2.获取当前路径。

import os

print(os.getcwd())

这个例子中的路径对应的是windows平台。其他的平台请视情况修改路径。

3.重命名文件。

import os

os.renane("a.text","b.txt")

Rename函数会将文件a.text。重命名为b.txt


喜欢这篇文章的朋友可以关注我,在学习编程的路上,我们共同前进!

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值