Python教程——如何通过代码对文件进行操作

TangLu 未命名 2023-05-27 3650 0

一、Python中对文件的读写操作

在Python中要对文件进行阅读或者编辑的话,需要按照打开-->读取-->写入-->关闭的步骤来进行,这里就涉及到了open()、read()、write()三个函数


1、文件的打开——open()函数

通常将打开的文件内容存放到一个变量中,这样方便后续的调用

file = open("file.txt",encoding='utf-8',mode='r')

open()函数常见的mode参数值:

mode=r:读取文件,默认操作

mode=w:写入并覆盖文件

mode=a:在文件末尾追加写入

mode=rb/wb:二进制模式,当对非文本文件进行读写时使用,此时encoding也不用配置

mode=+:支持读取与写入


2、文件的读取——read()函数

从上一步定义好的变量中读取出数据,可以使用多个变量来实现打开多个文件

file = open("file.txt",encoding='utf-8',mode='r')
file2 = open("file2.txt",encoding='utf-8',mode='w')
print (file.read())     # 默认读取全部内容
print (file.read(10))   # 只读取10个字符
print(file.readline())  # 读取一行内容
print_file=file.readlines()  #读取所有行,并存放在一个列表中

# 使用open()函数打开的文件可以直接被循环按行读取
for line in file:
 print (line)


3、文件的写入——write()函数

对文件追加内容,进行循环写入时需要将open()放在循环体外面,否则每次循环都会将之前的文本覆盖(mode=w的特性)

file = open("file.txt",encoding='utf-8',mode='w')    #这里需要修改mode为写入
file.write("我是测试内容")


4、关闭打开的文件——close()函数

只有执行正常关闭的内容才会被保存并且释放文件描述符。open()打开失败的可以不用关闭、write()函数写入后必须显示关闭、read()函数读取后建议关闭释放文件描述符

file = open("file.txt",encoding='utf-8',mode='w')    #这里需要修改mode为写入
file.write("我是测试内容")
file.close()  #关闭上面的文件


5、让文件打开和关闭保持一致——with语句

由于使用close()函数来关闭文件还需要判断文件是否正常打开,非正常打开的就不用去关闭,这样就会多了一层判断逻辑,为了简化操作可以使用with语句,使用with语句打开的文件,在离开with作用域后会自动关闭,实现文件打开和关闭保持一致。以下两段代码作用一样,但使用with语句会更简洁

#使用close显示关闭
file = open("file.txt",encoding='utf-8',mode='w')
data = f.read()
print(data)
file.close()

#使用with语句
with open("file.txt",encoding='utf-8',mode='w') as file:        #as file就相当于上面的file = 
  data = file.read()
print(data)


6、使用rename()函数重命名文件

import os  #rename()函数需要先导入os模块才可以使用
os.rename('old_file','new_file')


7、使用remove()函数删除文件

import os 
os.remove('new_file')


8、使用chdir()函数改变路径

import os
os.chdir("/etc/")
file = open("./passwd")


二、Python文件操作常用模块

操作文件和目录主要使用os模块中的函数,下面是一些常用函数使用说明

import os  #需要先导入os模块

print (os.path.exists('test.txt'))  #判断文件是否存在,存在返回True
print (os.path.abspath('test.txt'))  #获取文件的绝对路径
print (os.path.isfile('test.txt'))  #判断对象是否是文件
print (os.path.isdir('test.txt'))  #判断对象是否是目录
print (os.listdir('.'))  #列出当前目录下所有内容

os.mkdir('/new_dir')  #创建目录
os.rmdir('/new_dir')  #删除目录


评论