欢迎访问宙启技术站
智能推送

Python中的os模块和文件操作函数

发布时间:2023-06-07 22:55:34

Python中的os模块是一个与操作系统交互的模块,能够提供有关文件系统的访问和控制功能。在Python中,os模块中封装了大量的函数,涵盖了对文件、目录和进程等系统资源的处理,在文件操作方面,os模块也有很多强大的方法,可以帮助我们轻松地完成文件的读取、写入、移动、删除、重命名等操作,本篇文章就来介绍一下Python中os模块和文件操作函数。

1. os模块的基础方法

os模块提供了一些基础的方法,可以供我们处理常见的文件和目录操作。

(1)os.getcwd():获取当前工作目录。

(2)os.listdir(path):列出指定目录下所有的文件和子目录。

(3)os.mkdir(path):创建一个新目录。

(4)os.makedirs(path):递归创建一个目录。

(5)os.remove(path):删除一个文件。

(6)os.rmdir(path):删除一个空目录。

(7)os.removedirs(path):递归删除一个目录。

(8)os.rename(old, new):重命名一个文件或目录。

(9)os.path.exists(path):检测一个文件或目录是否存在。

2. 文件读写操作

(1)打开文件:使用open()函数可以打开一个文件,可以指定文件名、模式(r,w,a)和字符编码(默认为utf-8)。

f = open('filename', 'r', encoding='utf-8')

打开模式有:

r:只读模式(默认),如果文件不存在会抛出异常;

w:写入模式,如果文件不存在则自动创建,存在则覆盖原文件;

a:追加模式,如果文件不存在则自动创建,存在则在文件末尾追加内容;

b:二进制模式,与上述模式结合使用,如rb、wb、ab。

(2)读取文件内容:使用read()方法读取文件的全部内容,使用readline()方法读取一行内容,使用readlines()方法读取每一行内容存入列表。

f = open('filename', 'r')
content = f.read() # 读取全部内容
line = f.readline() # 读取一行内容
lines = f.readlines() # 读取多行内容

(3)写入文件内容:使用write()方法向文件中写入内容,使用writelines()方法向文件中写入多行内容。

f = open('filename', 'w')
f.write('Hello, World!
') # 写入一行内容
f.writelines(['Python
', 'Java
', 'PHP
']) # 写入多行内容

(4)关闭文件:使用close()方法关闭文件,在读写文件完成后建议关闭文件。

f = open('filename', 'r')
content = f.read()
f.close()

3. 文件操作的高级方法

(1)os.path.join(path1, path2):拼接文件路径,避免因不同操作系统路径格式导致的问题。

path = os.path.join('dir1', 'dir2', 'filename')

(2)os.path.splitext(path):分离文件扩展名和主体部分。

filename, ext = os.path.splitext('filename.txt') # filename='filename', ext='.txt'

(3)os.path.split(path):分离文件路径和文件名。

path, filename = os.path.split('/dir1/dir2/filename') # path='/dir1/dir2', filename='filename'

(4)os.path.basename(path):返回路径的文件名部分。

filename = os.path.basename('/dir1/dir2/filename.txt') # filename='filename.txt'

(5)os.path.dirname(path):返回文件路径的目录部分。

path = os.path.dirname('/dir1/dir2/filename.txt') # path='/dir1/dir2'

(6)os.path.getsize(path):获取文件大小。

size = os.path.getsize('filename') # size=10240

(7)os.path.abspath(path):获取文件的绝对路径。

path = os.path.abspath('filename') # path='/dir1/dir2/filename.txt'

(8)shutil模块:提供文件和目录的高级操作功能,例如复制、移动、删除等。

import shutil

shutil.copy('source', 'target') # 复制文件或目录
shutil.move('source', 'target') # 移动文件或目录
shutil.rmtree('path') # 删除目录及其子目录

总之,Python中的os模块提供了各种基础和高级的文件操作函数,使我们可以方便地处理文件和目录,可以让我们更加高效地操作计算机。在进行文件操作时,一定要注意保持文件的安全,避免对未经授权的文件做出修改和删除操作,以免造成不必要的损失。