Python3 -- 文件I/O总结(with、read、write、txt、CSV等)
Python3 文件读写总结:
普通文件格式(txt/无文件后缀):
读文件:
read():
-
特点:读取整个文件,将文件内容放到一个字符串变量中。
-
缺点:如果文件非常大,尤其是大于内存时,无法使用read()方法。
readline():
-
特点:readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存
-
缺点:比readlines慢的多
readlines():常用
- 特点:一次性读取整个文件;自动将文件内容分析成一个行的列表
写文件:
writer():
- 语法:fileObject.write( [ str ])
- str: 字符串
- 返回值:返回的是写入的字符长度
writelines() :常用
- 语法:fileObject.writelines( [ str ])
- str: 要写入文件的字符串序列, eg: ["菜鸟教程 1\n", "菜鸟教程 2"]
- 返回值:无
- 实例:
with open(filepath, 'w', encoding='utf8') as f:
f.writelines(['武汉加油!\n', '中国加油!\n'])
CSV文件格式:
读文件:
csv.reader():
- 返回值:是一个_csv.reader的对象
- 我们可以对这个对象进行遍历,输出每一行,某一行,或某一列
- 实例1:
# 读取所有 import csv with open('data.csv', 'r') as f: reader = csv.reader(f) print(type(reader)) for row in reader: print(row)
- 实例2:
# 获取某一行 import csv with open('data.csv', 'r') as f: reader = csv.reader(f) result = list(reader) print(result[1])
- 实例3:
# 获取某一列 import csv with open('data.csv', 'r') as f: reader = csv.reader(f) for i in reader: print(i[0])
写文件:
writerow([]):
- 单行写入
- 参数形式:['步惊云','36']
- 实例:
import csv with open('test.csv','w',newline='') as f: writer = csv.writer(f) writer.writerow(['步惊云','36']) writer.writerow(['超哥哥','25'])
writerows([(), (), ... , ()]):
- 多行写入
- 参数形式:[('聂风','36'),('秦霜','25'),('孔慈','30')]
- 实例:
import csv with open('test.csv','w',newline='') as f: writer = csv.writer(f) writer.writerows([('聂风','36'),('秦霜','25'),('孔慈','30')])