站点图标 AI技术聚合

python中os库用法详解(总结)

python中os库用法详解(总结)

        os库主要是对文件和文件夹进行操作,在Python中对⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能。

具体步骤如下:

1. 导⼊os模块

import os

2. 使⽤ os 模块相关功能

os.函数名()

1、⽂件重命名

os.rename(⽬标⽂件名, 新⽂件名)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.rename('./test_folder', './new_folder')
print(os.listdir())

运行结果;

python中os库用法详解(总结)

2、创建文件

os.mknod('./new_file.txt')    # Windows下不支持

示例代码:

import os

print(os.listdir())

# 新建文件(windows系统不支持,报错)
# os.mknod('./new_file.txt')

# windows下新建文件
f = open('./new_file2.txt', 'w', encoding='utf-8')
f.close()

3、删除⽂件

os.remove(⽬标⽂件名)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.remove('./text.txt')
print(os.listdir())

运行结果:

4、创建⽂件夹

os.mkdir(⽂件夹名字)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.mkdir('./test_folder')
print(os.listdir())

运行结果:

详见博文:Python创建目录文件夹_IT之一小佬的博客-CSDN博客 

5、删除⽂件夹

os.rmdir(⽂件夹名字)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.rmdir('./test_folder')
print(os.listdir())

运行结果:

6、获取当前⽬录

os.getcwd()

示例代码:

import os

print(os.getcwd())

 运行结果:

7、改变默认⽬录

os.chdir(⽬录)

8、获取⽬录列表

os.listdir(⽬录)

示例代码:

import os

print(os.listdir())

运行结果:

9、返回路径的上一级路径字符串

os.path.driname(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.dirname('./aa/python_test'))
print(os.path.dirname('./python_test'))
print(os.path.dirname(a))

运行结果:

 

10、返回路径的最后一级目录名(文件夹名)或文件名(全称)

os.path.basename(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.basename(a))
print(os.path.basename('./aa/python_test'))
print(os.path.basename('./python_test'))

运行结果:

11、返回文件名和其后缀组成的元组

os.path.splitext(file_name)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.splitext(a))
print(os.path.splitext('./aa/python_test'))
print(os.path.splitext('./python_test'))
print(os.path.splitext('./python_test.python'))

运行结果:

12、获取当前文件的绝对位置

os.path.abspath(__file__)

示例代码:

import os

current_path = os.path.abspath(__file__)
print(current_path)

current_folder = os.path.dirname(current_path)
print(current_folder)

运行结果:

13、返回当前工作目录的路径加上string组成的路径字符串

 os.path.abspath(string)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.abspath(a))
print(os.path.abspath('./aa/python_test'))
print(os.path.abspath('./python_test'))
print(os.path.abspath('./python_test.python'))

运行结果:

 14、判断一个路径是否是一个目录(文件夹)

os.path.isdir(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.isdir(a))
print(os.path.isdir('./aa/python_test'))
print(os.path.isdir('../111'))
print(os.path.isdir('./python_test.python'))

运行结果:

 15、判断一个路径是否是一个文件

os.path.isfile(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.isfile(a))
print(os.path.isfile('./aa/python_test'))
print(os.path.isfile('../111'))
print(os.path.isfile('./python_test.py'))

print(os.listdir())

运行结果:

16、以列表的形式返回一个目录(dir_path只能是目录,不能是文件名路径)下的所有文件(全称)和文件夹名称

os.listdir(dir_path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.listdir())
print(os.listdir('E:/代码/111'))
print(os.listdir('E:/代码/111/css'))

运行结果:

17、删除指定空目录(空文件夹)

 os.removedirs(dir_path)

示例代码1:

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.removedirs('./new_folder')
print(os.listdir())

运行结果:

示例代码2:   【必须是空文件夹】

import os

a = os.getcwd()
print(a)
print(os.listdir())
os.removedirs('./new_folder')
print(os.listdir())

运行结果:

 18、判断一个路径是否存在

os.path.exists(path)

示例代码:

import os

a = os.getcwd()
print(a)
if os.path.exists(a):
    print('path exist!')
else:
    print('path not exist!')

if os.path.exists('E:/代码/111'):
    print('path exist!')
else:
    print('path not exist!')

if os.path.exists('E:/代码/111/new_path'):
    print('path exist!')
else:
    print('path not exist!')

运行结果:

19、返回path的真实路径

os.path.realpath(path)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.realpath('./python_test.py'))

运行结果:

20、路径拼接

os.path.join(path,name)

示例代码1:

import os

a = os.getcwd()
print(a)
b = os.path.join(a, 'works')
print(b)

运行结果:

示例代码2:

import os

print(os.path.join('xx', 'yy', 'zz'))
print(os.path.join('AA', 'BB', 'CC', 'DD'))

运行结果:

21、返回一个路径的目录名和文件名 

os.path.split()

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.split(a))
print(os.path.split('E:/代码/111/index.html'))

运行结果:

 22、获得文件属性

os.stat(file)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.stat(a))
print(os.stat('E:/代码/111/index.html'))

运行结果:

 23、获得文件大小

os.path.getsize(name)

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.getsize(a))
print(os.path.getsize('E:/代码/111/index.html'))

运行结果:

24、判断是否为绝对路径

os.path.isabs()

示例代码:

import os

a = os.getcwd()
print(a)
print(os.path.isabs(a))
print(os.path.isabs('E:/代码/111/index.html'))
print(os.path.isabs('./index.html'))

运行结果:

25、获取环境变量中的值

        使用os获取环境变量的值,通常是使用os.getenv("value"),也可以使用os.environ.get("value")。也能够直接在settings等文件中设置环境变量,使用os.environ["key"] = "value"。

详解博文:python获取环境变量中的值(Pycharm)_IT之一小佬的博客-CSDN博客

26、随机生成n个字节的字符串

os.urandom(n)的作用就是随机生成n个字节的字符串,可以作为随机加密的key使用。

示例代码1:

import os

aa = os.urandom(6)
print(aa)

bb = aa.decode('utf-8', 'ignore')
print(bb)

运行结果:

示例代码2:

import os

for _ in range(5):
    print(os.urandom(6))

运行结果:

27、文件和文件夹操作应⽤案例

需求:批量修改⽂件名,既可添加指定字符串,⼜能删除指定字符串。

步骤

        1. 设置添加删除字符串的的标识

        2. 获取指定⽬录的所有⽂件

        3. 将原有⽂件名添加/删除指定字符串,构造新名字

        4. os.rename()重命名

示例代码1:

import os

# 获取指定⽬录
dir_name = './'
# 获取指定⽬录的⽂件列表
file_list = os.listdir(dir_name)
print(file_list)

运行结果:

 示例代码2:   【把flag=1改为flag=2即为删除功能】

import os

# 设置重命名标识:如果为1则添加指定字符,flag取值为2则删除指定字符
flag = 1
# 获取指定⽬录
dir_name = './'
# 获取指定⽬录的⽂件列表
file_list = os.listdir(dir_name)
print(file_list)

# 遍历⽂件列表内的⽂件
for name in file_list:
    # 添加指定字符
    if flag == 1:
        new_name = 'Python-' + name
    # 删除指定字符
    elif flag == 2:
        num = len('Python-')
        new_name = name[num:]
    # 打印新⽂件名,测试程序正确性
    print(new_name)

    # 重命名
    os.rename(dir_name + name, dir_name + new_name)

运行结果:

 

文章出处登录后可见!

已经登录?立即刷新
退出移动版