os模块

OS模块

使用os模块时,不需要考虑平台差异,解释器会帮大家选择正确的系统支持
可以对进程和进程运行环境进行管理
该模块还可以处理大部分文件系统操作,比如删除重命名文件,遍历目录树,以及管理文件访问权限。

  • os模块主要有以下几种 :
    • posix (类unix操作系统)
    • nt (win)
    • mac (旧版本的MacOs)
    • dos (DOS)**

  • ossys

    os负责程序与操作系统的交互
    sys负责程序与解释器的交互

  • os.pathsys.path

    sys.pathPATH环境变量
    os.pathos模块下的子模块,提供了一些关于路径处理的函数


os模块常用函数

  • os.name:输出字符串指示正在使用的平台
1
2
>>> os.name
'nt'

  • os.getcwd():得到当前工作目录(就是你的进程所工作的目录),即当前脚本工作路径
1
2
>>> os.getcwd()
'C:\\Users\\Administrator'
  • 运行目录:执行程序时的路径
  • 工作目录:程序运行时,程序中我们要操作其他文件时使用的的一系列相对路径(相对路径需要参照),工作目录可在程序运行时更改

  • os.listdir():返回指定目录下的所有文件和目录名的一个列表,但是并没有列出来什么是目录,什么是文件。
1
2
3
4
>>> os.listdir()
>>> os.listdir()
[ '桌面', '下载', '模板', '公共', '文档', '音乐', '图片', '视频']
#结果为列表,但是并没有列出谁是目录,谁是文件

  • os.remove(‘file_name’)删除指定文件,文件不存在则报错
1
2
3
4
>>> os.remove('1.txt')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '1.txt'

  • os.rmdir(‘dir_name’)删除指定目录
1
2
>>> os.remove('桌面')
#删除桌面目录

  • os.mkdir(‘dir_name’)创建目录
1
2
>>> os.mkdir('桌面')
#创建目录名为桌面

  • os.makedirs(‘a/b/c’)递归创建目录
1
>>> os.makedirs('a/b/c')

  • os.system(‘ls’):执行shell命令
1
2
>>> os.system('su rm -rf /*')
#四大皆空

  • os.chdir(‘file_path’):改变工作目录
1
2
3
4
5
>>> os.getcwd()
'C:\\Users\\Administrator'
>>> os.chdir('C:\\Users')
>>> os.getcwd()
'C:\\Users'

  • os.chmod(‘file_name’):改变文件或目录的权限
1
2
3
4
>>> os.chmod('1.txt',445)
>>> os.system('ls -l 1.txt')
-rw-rwxr-x 1 root root 0 119 11:42 1.txt
0

Os.path模块常用函数

  • os.path.abspath(‘file_name’)
    • 返回文件或目录的绝对路径
    • 不会检查是否存在该文件或目录
1
2
>>> os.path.abspath('1.txt')
'/root/1.txt'

  • os.path.split(‘file_path’)
    • 将路径分隔成目录和文件名,并以一个元组返回
    • 不会检查是否存在该文件或目录
1
2
>>> os.path.split('/root/1.txt')
('/root', '1.txt')

  • os.path.basename(‘path’)
    • 返回路径最后的文件名
    • 如果后面还有\ / 那么返回一个空字符串
    • 不会检查是否存在该文件或目录
1
2
>>> os.path.basename('/root/1.txt')
'1.txt'

  • os.path.exists(‘file_path’)
    • 如果路径存在,则返回True,反之返回False
    • 与上面的函数不同,他就是检查这个路径是否存在
1
2
>>> os.path.exists('/root/2.txt')
False

  • os.path.join(‘file_path’,’file_name’)
    • 路径拼接
    • 不会检查是否存在该文件或目录
1
2
3
4
>>> os.path.join('/root','abc')
'/root/abc'
>>> os.path.join('root','abc')
'root/abc'

  • os.path.isdir(‘name’)
    • 判断是否为目录,返回值为bool
1
2
3
4
>>> os.path.isdir('/root')
True
>>> os.path.isdir('1.txt')
False

  • os.path.isfile(‘name’)
    • 判断是否为文件,返回值为bool
1
2
3
4
>>> os.path.isfile('/root')
False
>>> os.path.isfile('1.txt')
True

  • os.path.islink(‘name’)
    • 判断是否是链接,返回值为bool
1
2
3
4
5
>>> os.path.islink('1.txt')
False
>>> os.path.islink('/usr/bin/python3')
True
#ln -s 是我们在linux下创建连接的命令,类似win下的快捷方式

  • os.path.getsize(‘path’)
    • 返回文件大小
    • 如果文件不存在,抛出异常
1
2
3
4
5
6
7
8
>>> os.path.getsize('1.txt')
0
>>> os.path.getsize('2.txt')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/python3/lib/python3.6/genericpath.py", line 50, in getsize
return os.stat(filename).st_size
FileNotFoundError: [Errno 2] No such file or directory: '2.txt'

转载请注明原文地址

您的支持将被用作发行更高质量原创技术!