总是忘记怎么读取/写入文档……然后发现原先写在jupyter的所有python和R的笔记都没了……所以痛定思痛,还是自己写在自己博客上靠谱呜呜
打开文件
1 | f = open(file, mode='r') #file为文件路径(绝对/相对) |
这是最基本的读取文件方式,其他的变形为:
- encoding = none 为默认,其他常用的为utf8
- mode一共有好几种,这里列几种常用的
模式 | 描述 |
---|---|
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
关闭文件
要打开文件就一定要相对应的关闭文件
1 | #关闭文件 |
读取文件
读取文件首先模式要选对,其次是不同的函数
1 | f.read([size]) #返回size数量的字节数 如果未给定或为负则读取所有。 |
常用的是readlines(),即依次读取每行信息(且不返还列表)
1 | for line in f.readlines(): #依次读取每行 |
设置指针位置
一般打开文件默认指针在开头或结尾,如果想到其他位置可以设置指针。
语法为:fileObject.seek(offset[, whence])
- offset: 开始的偏移量,也就是代表需要移动偏移的字节数
- whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
如果操作成功,则返回新的文件位置,如果操作失败,则函数返回 -1。
一些常用的:
1 | f.seek(0,0) #重新设置文件读取指针到开头 |
写入文件
1 | f.write(str) #写入字符串 |
其他
1 | f.name #返回文件名 |