读写文件
两种路径的介绍
绝对路径:总是从根文件夹开始
相对路径:相对程序的当前工作目录
文件读取
读取步骤:
1、调用open()
函数,返回一个File对象
2、调用File对象的read()
和write()
方法。
3、调用File对象的close()
函数,关闭文件。
open()函数打开文件
在使用
open()
函数打开文件时,需要向函数中传递一个字符串路径,可以是相对路径,也可以是绝对路径。但open()
函数返回的是一个File对象。
1 | files = open('E:\\hello.txt') |
此方法默认是以读
模式打开文件的,也就是python只让从文件中读取文本而不能以其他方式修改它。
读取文件内容
上面介绍了关于打开文件的方法,就是使用open()
函数,但是要读取文件里的内容就要使用File对象的read()
方法。
1 | files = open('E:\\hello.txt') |
输出内容
1 | [Running] python -u "e:\vscode_py\.vscode\hello.py" |
很明显,我们看到此时读取的内容为字符串
。另一种读取方法是readlines()
,它从文件中取得一个字符串的列表,此时列表中的每一个字符串就是文本中的一行,两者对比如下。
1 | files = open('E:\\hello.txt') |
读取结果如下:
1 | [Running] python -u "e:\vscode_py\.vscode\hello.py" |
此时,返回的对象类型为list
(列表),字符串列表。
写文件
以读模式打开文件,则不能进行修改(写)等操作;此时需要用写模式或添加文本模式来打开文件,但写模式将会覆盖原有的内容,从头开始,将
w
作为第二个参数传给open()
;添加模式是在原文件的末尾添加内容,将a
作为第二个参数传递给open()
,以添加模式打开文件。
1 | files = open('E:\\hello.txt','a') |
然后在读取文件
1 | files = open('E:\\hello.txt') |
输出结果如下:
1 | [Running] python -u "e:\vscode_py\.vscode\hello.py" |
用shelve
模块保存变量
用该模块能够将代码中的变量保存到
二进制
的shelf文件中。
1 | import shelveshelfFile = shelve.open('mydata')cats = ['dog', 'pig', 'Simon']shelfFile['dog'] = catsshelfFile.close() |
运行后会生成mydata.bak、mydata.dat、mydata.dir
等文件。
与正常文本操作方式不同,不用考虑是读模式还是写模式。
1 | import shelve |
输出结果为
1 | [Running] python -u "e:\vscode_py\.vscode\hello.py" |