首页 > Python3教程 > Python3 File(文件) 操作

Python3 操作文件目录的方法

本文主要介绍了python操作文件或目录的函数,欢迎大家的学习。

Python内置的os模块能直接调用操作系统提供的接口函数。

获取操作系统信息

import os
a = os.name # 操作系统类型
print(a) # 输出nt

a = os.uname() # windows系统没有定义

输出:

Python3 操作文件目录的方法

os.name输出posix,表示系统是Linux、Unix或Mac OS X,输出nt,表示是Windows系统

os.uname()函数在Windows上没有定义(os模块的某些函数和操作系统相关)

 

系统环境变量

os.environ变量存放了当前操作系统的全部环境变量

要获取某个具体环境变量的值,调用os.environ.get('key') 

import os
a = os.environ # 系统环境变量
print(a)

# 获取某个具体环境变量的值
a = os.environ.get('PATH')
print(a)

输出:

Python3 操作文件目录的方法

操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中。

查看、创建和删除目录

import os

# 查看当前目录的绝对路径
a = os.path.abspath('.')
print(a) # 输出E:\python_pro

# 在某个目录下创建一个新目录,要先获取新目录的完整路径
p = os.path.join(a, 'aa')
print(p) # 输出E:\python_pro\aa

# 然后创建一个目录
os.mkdir(p)

# 删掉一个目录
os.rmdir(p)

如果创建的目录已经存在,会报错:

Python3 操作文件目录的方法

目录路径处理函数

拼接两个目录路径时,不要直接拼字符串,要使用os.path.join()函数

该函数会正确处理不同操作系统的路径分隔符。

在Linux/Unix/Mac系统下,os.path.join()返回字符串:part-1/part-2

Windows系统下会返回的字符串:part-1\part-2

要拆分路径时,不要直接去拆字符串,要使用os.path.split()函数

把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名

os.path.splitext()函数直接获取文件扩展名

import os

# 处理路径
a = os.path.split("E:\python_pro\python\own.txt")
print(a) # 输出('E:\\python_pro\\python', 'own.txt')

a = os.path.splitext("E:\python_pro\python\own.txt")
print(a) # 输出('E:\\python_pro\\python\\own', '.txt')

路径处理函数不要求目录和文件要真实存在,就是对字符串进行操作。

 

文件操作函数

文件操作使用的函数有重命名,删除

import os

# 对文件重命名
os.rename('aa.txt', 'aa.py')

# 删掉文件
os.remove('aa.py')

在os模块中没有复制文件的函数,原因是复制文件并非由操作系统提供的系统调用。

shutil模块提供了copyfile()的文件复制函数

from shutil import *
import os

# 查看当前目录的绝对路径
a = os.path.abspath('.')
print(a) # 输出E:\python_pro

# 获取文件的完整路径
p = os.path.join(a, 'aa.txt')
print(p) # 输出E:\python_pro\aa.txt

# 文件复制
copyfile(p, 'aa.py')

 

Python过滤文件

要列出当前目录下的所有目录或列出所有的.py文件,代码:

import os

# 当前目录下的所有目录
a= [x for x in os.listdir('.') if os.path.isdir(x)]
print(a) # 输出['.idea', 'own', '__pycache__']

# 当前目录下的所有的.py文件
a = [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']
print(a) # 输出['aa.py', 'index.py']

 

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。