Python教程——如何通过代码对文件进行操作
一、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') #删除目录
评论