os模块和sys模块
os模块和sys模块
os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小……
另外,os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,额...我擦,我还真不知道,(甭管怎么着,肯定不是pwd),这时候我们使用python中os模块的os.path.abspath(name)功能,甭管是linux或者Windows都可以获取当前的绝对路径。
os模块
与操作系统交互的一个接口
os.getcwd():#获取当前工作目录,即当前python脚本工作的目录路径 os.chdir('dirname'):#改变当前脚本工作目录,相当于shell下cd os.curdir():#返回当前目录:'.' os.pardir():#获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2'):#可生成多层递归目录 os.removedirs('dirname1'):#若目录为空,则删除,并递归到上一层目录,如若也为空,则删除,以此类推。 os.mkdir('dirname')#生成单级目录,相当于shell中mkdir dirname os.rmdir('dirname')#删除单级空目录,若目录不为空则无法删除,报错,相当于shell中rmdir dirname os.listdir('dirname')#列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove()#删除一个文件 os.rename('oldname','newname')#重命名文件/目录 os.stat('path/filename')#获取文件/目录信息 os.sep#输出操作系统特定的路径分割符,win下为'\\',linux下为'/'(# python代码跨平台 :linux windows) os.linesep#输出当前平台使用的行终止符,win下为:'\t\n',linux下为'\n' os.pathsep#输出用于分割文件路径的字符串,win下为;,linux下为: os.name#输出字符串指示当前使用平台,win->'nt',linux->'posix' os.system("bash command")#运行shell命令,直接显示 os.popen("bansh command").read()#运行shell命令,获取执行结果 os.environ#获取系统环境变量
os.path
os.path.abspath(path)#返回path规范化的绝对路径。 os.path.split(path)#将path分割成目录和文件名二元组返回 os.path.dirname(path)#返回path的目录,其实就是os.path.split(path)的第一个元素 os.path.basename(path)#返回path最后的文件名,如果path以/或\结尾,则返回空值,即os.path.split(path)的第二个元素 os.path.exists(path):#入股path存在,则返回True,不存在则返回False os.path.isabs(path):#如果path是绝对路径,则返回True os.path.isdir(path):#如果path是一个存在的目录,则返回True,否则返回False os.path.isfile(path):#如果path是一个存在的文件,则返回True,否则返回False os.path.join(path1[,path2[,path3[……]]):#将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。 os.path.getatime(path):#返回path所指向的文件或目录的最后访问时间 os.path.getmtime(path):#返回path所指向的文件或目录的最后修改时间 os.path.getsize(path):#返回path的大小
sys模块
提供了一系列有关Python运行环境的变量和函数。sys模块是与python解释器交互的一个接口。
1.sys.argv
命令行参数List,第一个元素是程序本身路径。
import sys sys.argv[0] #获取脚本名 sys.argv[1] #获取第一个参数 len(sys.argv)
2.sys.modules.keys()
返回所有已经导入的模块列表。
import sys print(sys.modules.keys()) #结果如下: dict_keys(['sys', 'builtins', '_frozen_importlib', '_imp', '_thread', '_warnings', '_weakref', 'zipimport', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_abc', 'site', 'os', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', '_bootlocale', '_locale', 'encodings.gbk', '_codecs_cn', '_multibytecodec', 'types', 'importlib', 'importlib._bootstrap', 'importlib._bootstrap_external', 'warnings', 'importlib.util', 'importlib.abc', 'importlib.machinery', 'contextlib', 'collections', 'operator', '_operator', 'keyword', 'heapq', '_heapq', 'itertools', 'reprlib', '_collections', 'functools', '_functools', 'mpl_toolkits', 'google', 'zope', 'idlelib', 'idlelib.run', 'linecache', 'tokenize', 're', 'enum', 'sre_compile', '_sre', 'sre_parse', 'sre_constants', 'copyreg', 'token', 'queue', 'threading', 'time', 'traceback', '_weakrefset', '_queue', 'idlelib.autocomplete', 'string', '_string', 'idlelib.autocomplete_w', 'platform', 'subprocess', 'signal', 'errno', 'msvcrt', '_winapi', 'tkinter', '_tkinter', 'tkinter.constants', 'idlelib.multicall', 'idlelib.config', 'configparser', 'collections.abc', 'idlelib.hyperparser', 'idlelib.pyparse', 'idlelib.calltip', 'inspect', 'dis', 'opcode', '_opcode', 'textwrap', 'idlelib.calltip_w', 'idlelib.tooltip', 'idlelib.debugger_r', 'idlelib.debugger', 'bdb', 'fnmatch', 'posixpath', 'idlelib.macosx', 'plistlib', 'binascii', 'datetime', 'math', '_datetime', 'struct', '_struct', 'xml', 'xml.parsers', 'xml.parsers.expat', 'pyexpat.errors', 'pyexpat.model', 'pyexpat', 'xml.parsers.expat.model', 'xml.parsers.expat.errors', 'idlelib.scrolledlist', 'idlelib.window', 'idlelib.debugobj_r', 'idlelib.rpc', 'pickle', '_compat_pickle', '_pickle', 'select', 'socket', '_socket', 'selectors', 'socketserver', 'idlelib.iomenu', 'shlex', 'tempfile', 'shutil', 'zlib', 'bz2', '_compression', '_bz2', 'lzma', '_lzma', 'random', 'hashlib', '_hashlib', '_blake2', '_sha3', 'bisect', '_bisect', '_random', 'weakref', 'locale', 'idlelib.stackviewer', 'idlelib.debugobj', 'idlelib.tree', 'idlelib.zoomheight', 'pydoc', 'pkgutil', 'urllib', 'urllib.parse'])
3.sys.exc_info()
获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息。
import sys print(sys.exc_info()) #结果如下: (None, None, None)
4.sys.exit(n)
退出程序,正常退出时exit(0),错误退出时为exit(1)。
import sys sys.exit()
if name == 'alex' and pwd == 'alex3714': print('登陆成功') else: print("错误的用户名和密码") sys.exit() print('你可以使用计算器了')
5.sys.hexversion
获取Python解释程序的版本值,16进制格式如:0x020403F0。
import sys print(sys.hexversion)
6.sys.version
获取Python解释程序的版本信息。
import sys print(sys.version) #结果如下: 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)]
7.sys.maxsize
最大的Int值。
import sys print(sys.maxsize) #结果如下: 9223372036854775807
8.sys.maxunicode
最大的Unicode值。
import sys print(sys.maxunicode) #结果如下: 1114111
9.sys.modules
返回系统导入的模块字段,key是模块名,value是模块。
import sys print(sys.modules)
10.sys.path
返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值。
import sys print(sys.path)
11.sys.platform
返回操作系统平台名称。
import sys print(sys.platform)
12.sys.stdout
标准输出。
import sys f = open('log.txt','a') #以追加的模式打开一个文件 __console__ = sys.stdout #备份默认console命令行 sys.stdout = f #指定标准输出到文件 print('hello python') sys.stdout = __console__ #将标准输出改为模式的console命令行模式 print('hello world') #输出将会在console命令行下
13.sys.stdin
标准输入。
import sys name = sys.stdin.readline() #接受标准输入,等价于raw_input() print('输出:',name)
14 sys.exec_prefix
返回平台独立的python文件安装的位置。
import sys print(sys.sys.exec_prefix)
15.sys.copyright
记录python版权相关的东西。
>>> sys.copyright
16.sys.api_version
解释器的C的API版本。
>>> sys.api_version
浙公网安备 33010602011771号