Python 文件处理
-
读写文件
-
打开文件
open函数打开文件,返回文件对象。open 函数打开文件三种常用模式:
- 只读模式,使用
r
表示,用于读取文件内容,不能向文件中写入数据 - 只写模式,使用
w
表示,用于将数据覆盖写入文件中 - 追加模式,使用
a
表示,用于将数据追加写入文件的末尾
注:打开一个不存在的文件时,只读模式会报不存在文件异常,只写和追加模式都会创建一个写文件
# 打开不存在的文件 f = open('test.txt','r') # 报错:FileNotFoundError: [Errno 2] No such file or directory: 'test.txt' f = open('test.txt','w') #创建文件 f = open('test.txt','a') #创建文件
- 只读模式,使用
-
写文件
-
write()方法:写入文件的内容不会自动换行,且调用一次只能将一个字符串写入文件
# 写入数据到文件 # 第一次 f = open('test.txt','w') f.write('hello') f.write('world') f.write('!') # 第二次(覆盖第一次写入数据) f = open('test.txt','w') f.write('你') f.write('好') # 使用追加 f = open('test.txt','a') f.write('你') f.write('好') # 写入换行,使用换行符 f = open('test.txt','w') f.write('hello\n') f.write('world\n') f.write('!\n')
-
writelines()方法:可以将一个序列中的多个字符串一次写入文件中
# 使用writelines()函数,调一次写入 f = open('test.txt','w') f.writelines(['hello\n','world\n','!\n'])
-
close()方法:当使用完一些资源,要对其资源释放或者关闭,避免资源浪费
# 使用close()函数关闭文件 f =open('test.txt','w',encoding='utf-8') f.writelines(['hello\n','world\n','!\n']) f.close()
-
-
文件安全打开
使用
with
关键字和open函数打开文件,当文件操作完后会自动调close()方法# 使用with关键字安全打开文件 with open('test.txt','w',encoding='utf-8') as f: f.writelines(['hello\n','world\n','!\n'])
-
读文件
-
read()方法:可以一次性从文件中读取所有文件内容
# read()函数读文件 with open('test.txt','r',encoding='utf-8') as f: data = f.read() print(data)
-
readlines()方法:可以按照行的方式把文件中的内容一次全部读取出来,返回一个列表
# readlines()函数读文件 with open('test.txt','r',encoding='utf-8') as f: datas = f.readlines() print(datas) for data in datas: print(data,end='') # end='' 取消print函数换行打印
-
-
-
文件管理
文件操作时,不只是有读取和写入操作,还有删除文件、文件重命名、创建文件夹等
-
rename函数:用于对文件或者文件夹重命名,文件不存在时会报文件不存在异常
# 文件重命名 import os os.rename('test.txt','测试.txt')
-
remove函数:用于删除指定文件
# 删除指定文件 import os os.remove('测试.txt')
-
mkdir函数:用于在指定路径下创建文件夹
# 创建文件夹 import os os.mkdir('test') #当前文件夹下
-
getcwd函数:用于获取程序运行的绝对路径
# 获取程序运行绝对路径 import os print(os.getcwd())
-
listdir函数:用于获取指定路径下的文件列表,返回一个列表
# 获取指定路径下的文件列表 import os print(os.listdir('./'))
-
rmdir函数:用于删除指定路径下的空文件夹
# 删除指定路径文件夹,(非空文件夹删除会报错) import os os.rmdir('test')
-
-
JSON文件操作
JSON中的数据类型与Python中的数据类型会有一些差异:1.python中的元组和列表在JSON中都是以列表形式存在;2.python中的布尔类型True和False在JSON中会转为写true和false;3.python中的空类型None在JSON中会转为null。
json模块常用几个函数:
-
dumps函数:将Python数据类型转为JSON字符串
# dumps函数 import json user_info={'name':'zhangsan','age':18,'sex':None,'study':['java','python'],'vip':False} json_str = json.dumps(user_info) print(json_str)
-
loads函数:将JSON字符串转为Python的数据类型
# loads函数 import json json_str = '{"name": "zhangsan", "age": 18, "sex": null, "study": ["java", "python"], "vip": false}' json_obj=json.loads(json_str) print(json_obj)
-
dump函数:将Python数据类型转为JSON字符串,并写入JSON文件
# dump函数 import json json_str = '{"name": "zhangsan", "age": 18, "sex": null, "study": ["java", "python"], "vip": false}' json_obj=json.loads(json_str) with open('test.json','w') as f: json.dump(json_obj,f)
-
load函数:从JSON文件读取数据,并将JSON字符串转为Python数据类型
# load函数 import json with open('test.json','r') as f: json_obj = json.load(f) print(json_obj)
-
-
CSV文件操作
CSV文件内容默认使用逗号分隔,可以使用Excel打开;CSV文件是一种文本文件,可以使用其他文本编辑器打开;CSV文件内的数据没有类型,所有数据都是字符串
csv模块常用几个函数:
-
写入csv文件
-
writerow函数:一次写入一行数据
# writerow写入csv文件 import csv data = [['name', 'age'], ['张三', 18], ['李四', 20], ['王五', 25]] with open('test.csv', 'w', encoding='utf-8') as f: writer = csv.writer(f) for row in data: writer.writerow(row)
-
writerows函数:一次写入多行数据
# writerows写入csv文件 import csv data = [['name', 'age'], ['张三', 18], ['李四', 20], ['王五', 25]] with open('./test.csv','w',encoding='utf-8') as f: writer = csv.writer(f) writer.writerows(data)
-
-
读csv文件
-
reader方法:根据打开的文件对象返回一个可迭代对象,然后遍历对象读取CSV文件每一行数据
# 读取csv文件内容 import csv with open('test.csv','r',encoding='utf-8') as f: w = csv.reader(f) for row in w: print(row)
-
-
- 当才华还配不上野心,就静下来学习
- blog地址:hangzhi.site