读和写文件
Python open() 方法用于打开一个文件,并返回文件对象。基本语法格式:open(filepath, mode)
- - filepath:你要访问的文件名称的路径(绝对路径或相对路径)。
- - mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
filepath:以test.txt为例。
则该文件绝对路径为D:\code\Python基础\test.txt
则该文件相对路径为test.txt
常用的mode如下:
- r:以只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。
- w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
- wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于将图片写入文件。
- a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
- [r,w,a]其中任意一个与b进行组合则表示以二进制格式打开...
- [r,w,a]其中任意一个与+进行组合则表示打开一个文件用于读写...
文件对象的方法
常用方法如下:
- f.read():读取f文件的内容,然后作为字符串或字节对象返回。
- f.readlines(): 将返回该文件中包含的所有行。
- f.write(string):将string写入到文件中,返回的是写入的字符长度
- f.flush():刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
- f.close():当处理完一个文件后,关闭文件并释放系统的资源。
test.txt
# 打开一个文件 f = open('test.txt','r') print(f.read()) print(type(f.read())) f.close()
f = open('test.txt','r') print(f.readlines()) print(type(f.readlines())) f.close()
f = open('test.txt','a') print(f.write('abc')) print(f.write('def')) print(f.write('xyz')) f.close()
# 当处理一个文件对象时, 使用 with 关键字是非常好的方式。在结束后, 它会帮你正确的关闭文件。 # 一般来说推荐以下方法: # 写 with open('test.txt', 'w', encoding='utf-8') as f: f.write('test') # 读 with open('test.txt', 'r', encoding='utf-8') as f: f.readlines() # 执行完自动close,避免忘记关闭文件导致资源的占用。
csv文件
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。
import csv with open('test.csv','w',encoding='utf-8',newline='')as f: csvwriter = csv.writer(f) csvwriter.writerow(('name','age','school')) csvwriter.writerow(('艾派森',10,'家里蹲大学')) csvwriter.writerow(('张三',18,'哈弗大学')) csvwriter.writerow(('李四',21,'清华大学'))