python常用模块之os模块

文章目录

    • 一、什么是os?
    • 二、什么是os模块?
    • 三、os模块所有方法
    • 四、os模块函数用法(通用操作)
            • 1、当前使用平台
            • 2、当前文件和路径
            • 3、绝对路径
            • 4、创建目录和重命名目录
            • 5、删除文件或者目录
            • 6、对系统进行操作
            • 7、查看文件名或者目录
            • 8、拼接绝对路径
            • 9、查看文件
            • 10、递归获取目录下所有子目录和文件名
            • 11、查看文件大小
            • 12、查看文件时间
            • 13、更改文件路径
            • 14、规范化绝对路径
            • 15、表现形式参数
    • 五、os模块小练习

一、什么是os?

操作系统(Operating System,简称os,是配置在计算机硬件上的第一层软件,是对计算机硬件系统的首次扩充,是一个计算机系统最基础,也是最重要的系统软件。

二、什么是os模块?

python官方文档解释:os — 各种各样的操作系统接口,在保持功能可用和接口的一致性下,提供一个便携式去使用操作系统的相关功能。

三、os模块所有方法

import
print(dir(os))
'''
['DirEntry', 'F_OK', 'MutableMapping', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 
'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC',
 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'PathLike', 'R_OK', 
 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'W_OK', 'X_OK', '_AddedDllDirectory', '_Environ', 
 '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', 
 '__package__', '__spec__', '_execvpe', '_exists', '_exit', '_fspath', '_get_exports_list', '_putenv', 
 '_unsetenv', '_wrap_close', 'abc', 'abort', 'access', 'add_dll_directory', 'altsep', 'chdir', 
 'chmod', 'close', 'closerange', 'cpu_count', 'curdir', 'defpath', 'device_encoding', 'devnull', 
 'dup', 'dup2', 'environ', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 
 'execvp', 'execvpe', 'extsep', 'fdopen', 'fsdecode', 'fsencode', 'fspath', 'fstat', 'fsync', 
 'ftruncate', 'get_exec_path', 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 
 'getcwd', 'getcwdb', 'getenv', 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'linesep', 'link', 
 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 
 'pipe', 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 
 'replace','rmdir', 'scandir', 'sep', 'set_handle_inheritable', 'set_inheritable', 'spawnl', 'spawnle', 
 'spawnv', 'spawnve', 'st', 'startfile', 'stat', 'stat_result', 'statvfs_result', 'strerror', 
 'supports_bytes_environ', 'supports_dir_fd', 'supports_effective_ids', 'supports_fd', 
 'supports_follow_symlinks', 'symlink', 'sys', 'system', 'terminal_size', 'times', 'times_result', 
 'truncate', 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write']

'''

四、os模块函数用法(通用操作)

1、当前使用平台
# 当前使用平台
print(os.name)  # 返回当前使用平台的代表字符,Windows用'nt'表示,Linux用'posix'表示
#  >>> nt
2、当前文件和路径
# 当前路径和文件
path =r'C:\Users\Administrator\Desktop\Day\Day16~20\Day16\random随机模块'
print(os.getcwd())  #返回当前工作目录
print(os.listdir(path))  #返回path目录下所有文件列表
3、绝对路径
#  获取绝对路径
path = __file__  # 当前文件
print(os.path.abspath(path))
4、创建目录和重命名目录
# 创建目录
os.mkdir('os/a')   # 创建单个目录

path = "os/a/b/c"
os.makedirs(path, mode=0o777)  # 递归创建多个目录 ,mode=0o777代表文件夹权限
# 结果:创建了/b/c等2个目录
'''
mkdir和makedirs 的区别:
mkdir: 如果 os目录不存在,则创建os/a 则会报错
makedirs: 如果 os目录不存在,os.mkdir('os/a/b/c')仍然正常
'''
os.rename("oldname","newname")  #重命名文件/目录
5、删除文件或者目录
# 删除文件或者目录
os.remove('path1.py') # 删除文件(必须是文件)
os.rmdir(path)  # 删除path目录(只能删除一级目录,如'c:\a\b'),b
os.removedirs(path)  # 删除多级目录(如'F:\a\b'),必须为空目录,则删除a、b目录
6、对系统进行操作

os.system()  #运行shell命令
>>>os.system('cmd')  #Windows下打开终端
>>>os.system('ls')  #Linux下查看当前目录所有文件

7、查看文件名或者目录
# 查看文件名或者目录
print(os.path.split(r'c:\\python\js.text') ) # 将path的目录和文件名分开为元组
# ('c:\\\\python', 'js.text')
os.path.dirname(path)  # 返回path中的目录(文件夹部分),结果不包含'\'
os.path.basename(path)  # 返回path中的文件名
os.listdir('dirname')    #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
8、拼接绝对路径
# 拼接绝对路径
ABS_path = os.path.join('c:\\','a','c.txt','c:\\','b','h.txt')
print(ABS_path)
# c:\b\h.txt
'''
 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
'''
9、查看文件
os.path.exists(path)  #判断path是否存在,存在返回True,不存在返回False
os.path.isfile(path)  #判断path是否为文件,是返回True,不是返回False
os.path.isdir(path)  #判断path是否目录,是返回True,不是返回False

10、递归获取目录下所有子目录和文件名
g = os.walk(r'C:\Users\Administrator\Desktop\Day\Jasn--70--Days')   #递归返回path下的目录(包括path目录)、子目录、文件名的三元组
for i in g: # g是生成器对象
    print(i)
11、查看文件大小
os.path.getsize(path)  #返回文件的大小,若是目录则返回0
12、查看文件时间
os.path.getmtime(path)  #返回文件或目录的最后修改时间,结果为秒数
os.path.getatime(path)  #返回文件或目录的最后访问时间,结果为秒数
os.path.getctime(path)  #返回文件或目录得创建时间,结果为秒数
13、更改文件路径
os.chdir(path)  #将当前工作目录更改为指定路径path,如果path不存在,则会报错。
14、规范化绝对路径
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以/或\结尾,那么就会返回空值。
 
15、表现形式参数
os.sep        #输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep    #输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep    #输出用于分割文件路径的字符串 win下为;,Linux下为:

五、os模块小练习

# 1、获取某个文件所在目录的上一级目录。
# # 例如'D:\python\projects\test19.py'目录的结果 :D:\python\projects

import os
#
# path = r'D:\python\projects\test19.py'
# print(os.path.dirname(path))


# 2、写一个函数,接受一个参数,如果是文件,就打印出这个文件绝对路径,如果是文件夹,就打印出这个文件夹下所有的py文件的绝对路径

def func(paths):
    if os.path.isfile(paths) and paths.endswith('.py'):
        print(paths)
    elif os.path.isdir(paths):
        for ABS_path, _, files in os.walk(paths):
            for file in files:
                if file.endswith('.py'):
                    file_paths = ABS_path+ file
                    print(file_paths)

func(r'C:\Users\Day\python--70--Days\常用模块')
func(r'C:\Users\Day\python--70--Days\常用模块\os模块\ceshi.py')

你可能感兴趣的:(python基础)