day5_os模块和sys模块

os模块是python里比较常用的模块,是跟操作系统相关的,包含很多方法,今天主要讲解os模块的几个常用方法:
1、os.getcwd()
是获取当前路径的方法,可以用print(os.getcwd())查看当前路径是什么

 

2、os.chdir('')
是更改目录的方法,如果os.chdir('../')是更改到上级目录,要想看返回值,必须在print(os.getcwd())

 

3、os.mkdir("test1")
是创建文件夹方法,os.mkdir("test1"),创建单个文件夹

 

4、os.makedirs('aa/bb/cc')
递归创建文件夹,父目录不存在时创建父目录,os.makedirs('aa/bb/cc'),创建多个文件夹

 

5、os.rmdir("test1")
是只能删除空文件夹的方法,可以用os.rmdir("test1")查看是否成功删除空文件夹

 

6、os.removedirs(' aa/bb/cc ')
递归删除空目录,可以用os.removedirs('aa/bb/cc')查看是否删除成功

 

7、os.remove("a.py")
是删除文件的方法,可以用os.remove("a.py")查看是否成功删除文件

 

8、os.listdir('.')
print(os.listdir('.'))打印出一个目录下的所有文件和文件夹,以list的形式展示

 

9、os.rename("test", "test1")
是重命名文件或文件夹的方法,把前面的文件夹、文件改成后面的文件夹、文件

 

10、os.path.abspath(__file__)
是根据相对路径获取绝对路径的方法,print(os.path.abspath(__file__))可以获取实际的绝对路径

 

11、os.path.split("/aa/bb/cc.txt")
是分割路径和文件名的方法,也可以都是目录进行分割,返回一个元组,print(os.path.split('aa/bb/cc.txt'))打印出('aa/bb', 'cc.txt'),传入的路径不存在也可以分隔

 

12、os.path.dirname("/usr/local/a.txt")
是获取父目录的方法,可以用print(os.path.dirname("/usr/local/a.txt"))查看,返回的父目录是/usr/local,传入的路径不存在也可以获取到父目录

 

13、os.path.exists("/usr/local")
是证明目录/文件是否存在,print(os.path.exists('usr/local/cc.txt')),如果存在就返回True,否则返回False

 

14、os.path.isfile("test1.py")
是判断是否是一个文件的方法,可以用print(os.path.isfile("test1.py"))查看,如果文件存在返回True,否则返回False

 

15、os.path.isdir("test1")
是判断是否是一个文件夹的方法,可以用print(os.path.isdir("test1"))查看,如果文件夹存在就返回True,否则返回False

 

16、os.path.join("root", 'hehe', 'a.sql')
是拼接成一个路径的方法,可以用print(os.path.join('root', 'hehe', 'a.sql'))查看,拼接的路径是root\hehe\a.sql

 

17、os.path.basename(path)
去掉目录路径,返回最后的文件夹或文件名,如print(os.path.basename('D:\\python22\\1.txt')),返回1.txt ,print(os.path.basename(r'D:\python\byz-code')),返回byz-code文件夹

 

18、os.walk(path)
无论目录有多深,都可以拿到当前的目录所有的目录所有的文件,用法如下:

name = '.mp4'
for cur_dir, dirs, files in os.walk(r'C:\Users\sunshujiang\PycharmProjects\hua'):
for file in files:
if name in file:
abs_path = os.path.join(cur_dir, file)
print('找到了%s文件,路径是%s' % (file, abs_path))

也可以封装成一个函数,用法如下:

def search_file(name, path):
for cur_dir, dirs, files in os.walk(path):
for file in files:
if name in file:
abs_path = os.path.join(cur_dir, file)
print('找到了%s文件,路径是%s' % (file, abs_path))


search_file('.mp4', r'C:\Users\sunshujiang\PycharmProjects\hua')

18、os.system('ifconfig')
执行操作系统命令,在不需要获取到命令返回结果的情况下用,如os.system('dir'),命令输入正确的情况下会返回0,错误的命令会显示1以及红色的乱码,用法如下图:
res = os.system('dir')
print('res....', res)  # print出来的内容拿不到,打印出res.... 0


19、os.popen(command)
也可以执行操作系统命令,它是可以获取到命令的执行结果,如res= os.popen('ipconfig'),print(res),会打印出内存地址,如果想看到详细的内容要加上read方法,如print(res.read())
print(os.path.getsize('b.txt'))  # 获取文件大小
print(os.path.getatime('b.txt'))  # 最近一次访问时间
print(os.path.getctime('b.txt'))  # 创建时间
print(os.path.getmtime('b.txt'))  # 修改时间

 

20、sys.version
获取系统版本,print(sys.version)

 

21、sys.platform
获取当前执行环境的平台,print(sys.platform),如win32,linux

 

22、sys.path
获取环境变量列表,print(sys.path)

 

23、sys.argv
打印出来一个list,获取到运行这个python文件的时候传入的参数,如果不传入参数,list只有一个元素,即python文件的绝对路径

inpu = sys.argv # 获取到运行这个python文件的时候传入的所有参数
print(inpu)
if len(inpu) >= 3:
filename = inpu[1]
content = inpu[2]
f = open(filename, 'w', encoding='utf8')
f.write(content)
else:
print('参数传入错误,e.g\n' 'python 20171104.py filename content')

直接运行程序会走else,在Terminal里运行 python 20171104.py wjx jmx
会把20171104.py,wjx,jmy依次加入到list里面,文件后面接再多的参数也能加进去,如下图:


也可以python 20171104.py filename content,运行成功在当前目录下生成一个文件,文件里会看到content,这些是常用的方法,要重点掌握了

原文地址:https://www.cnblogs.com/laosun0204/p/7747764.html