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

 

posted on 2019-11-19 12:57  眨眼星舟_Eric  阅读(176)  评论(0)    收藏  举报

导航