python

模块对于python这门高级语言来说格外的重要

我们可以通过各种模块来轻松完成不同的任务要求

在使用模块之前,我们需要先导入模块  eg:

      import os : 使用os里面的方法要加模块名os   eg:os.system(cmd)

      from os import *   : 使用os里面的所有方法都不要加模块名os   eg:system(cmd)

      form os import system : 使用os里面的方法 system 不用加模块名os,用其他的方法就需要 eg: os.popen()

也可以从模块中导入部分方法 ,eg: from os import Popen    只是导入os.Popen方法完全导入到当前文件(可以直接调用,不用加模块名)

接下来,我们来说说python与系统交互的几个内置模块:

OS模块:

    os模块提供了如下方法:

 1 '''
 2 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
 3 os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
 4 os.chmod(file,mode)  更改权限
 5 os.curdir  返回当前目录: ('.')
 6 os.pardir  获取当前目录的父目录字符串名:('..')
 7 os.makedirs('dirname1/dirname2')    可生成多层递归目录
 8 os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
 9 os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
10 os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
11 os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
12 os.remove()  删除一个文件
13 os.rename("oldname","newname")  重命名文件/目录,若newname存在,则会报错
14 os.stat('path/filename')  获取文件/目录信息
15 os.sep    输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
16 os.linesep    输出当前平台使用的行终止符,win下为"
",Linux下为"
"
17 os.pathsep    输出用于分割文件路径的字符串
18 os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
19 os.system("bash command")  运行shell命令,直接显示
20 os.popen(cmd)  执行系统命令。执行命令时不会打印任何信息,相当于把执行结果写到文件里面,
所以要查看执行结果需要os.popen('dir').read()
21 os.environ 获取系统环境变量 22 os.path.abspath(path) 返回path规范化的绝对路径 23 os.path.split(path) 将path分割成目录和文件名二元组返回 24 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 25 os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素 26 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False 27 os.path.isabs(path) 如果path是绝对路径,返回True 28 os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False 29 os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False 30 os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 31 os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间 32 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
33 34 '''

SYS模块:

1 '''
2 sys.argv           命令行参数List,第一个元素(sys.argv[0])是程序本身路径,sys.argv[1]...就是后面传递给当前文件的参数
3 sys.exit(n)        退出程序,正常退出时exit(0)
4 sys.version        获取Python解释程序的版本信息
5 sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
6 sys.platform       返回操作系统平台名称
7 sys.stdout.write('please:')
8 val = sys.stdin.readline()[:-1]
9 '''

subprocess 模块:

 1 '''
 2 为了替换几个老的模块和方法,eg:os.system()、os.spawn*等
 3 以后在用python与系统直接调用时,尽量使用subprocess模块
 4 
 5 每次调用subprocess.run() 或call()等命令,都是另外启动一个子进程,所以在shell(或cmd)下的python解释器能看到结果,而在ide看不到(shell、cmd一闪而过)
 6 进程直接不能直接通信,所以要把子进程的运行结果返回到父进程,就要通过管道
 7 '''
 8 import subprocess
 9 
10 res = subprocess.run('whoami')   #在shell中执行时,执行命令并打印,
11 print('执行结束返回:',res)
12 '''
13 test14 执行结束返回: CompletedProcess(args='whoami', returncode=0)
15 
16 '''
17 
18 a = subprocess.Popen(['python'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
19 a.stdin.write(b'print("hello")
')
20 a.stdin.write(b'print("world")
')
21 print(a.communicate())
22 '''
23 (b'hello
world
', b'')
24 '''
原文地址:https://www.cnblogs.com/xtsec/p/6679665.html