【Python开发】8. 文件操作
本文专栏:Python开发笔记 点击查看系列文章
本文主要内容:
- 1. 读取文件
- 1.1 文件路径
- 1.2 读取整个文件
- 1.3 逐行读取
- 2. 写入文件
- 2.1 写入空文件
- 2.2 写入多行
- 2.3 内容追加
1. 读取文件
1.1 文件路径
读取文件使用的函数是 open() ,当然要给函数指定 文件的位置,即 文件路径 。
提供的路径主要有两种路径
- 相对文件路径:即相对于当前运行的程序所在的目录。
- 绝对文件路径:文件在计算机中的准确位置。
如果在当前运行的程序HelloWorld.py的同级目录下有一个名为file的文件夹,该文件夹下有一个名为data.txt的文件,那么这个文件路径就可以定义为:
file_path = 'file/data.txt'
当然上面这个路径定义,使用的是相对路径。
如果使用绝对路径,那么应该这样定义:
file_path = 'D:/PycharmProjects/学习阶段/HelloWorld/file/data.txt'
1.2 读取整个文件
已知在上面定义的txt 文件中写入了几行数字,那么可以使用下面这样的代码读取整个文件中的内容:
file_path = 'file/data.txt'
with open(file_path) as file_object:contents = file_object.read()print(contents)
可以将所有的文本打印出来:
1024
2048
4096
1.3 逐行读取
如果想逐行读取文件,那么可以参考下面的示例:
示例:
lineNum = 1
file_path = 'file/data.txt'
with open(file_path) as file_object:for line in file_object:print('第' + str(lineNum) + '行:' + line)lineNum += 1
示例输出:
第1行:1024第2行:2048第3行:4096
在上面这个示例中,可以看到每一行都多输出了一个空行。这是因为print语句加上一个换行符,文件的每一行也有一个换行符导致的。
可以使用 rstrip() 解决。
示例:
lineNum = 1
file_path = 'file/data.txt'
with open(file_path) as file_object:for line in file_object:print('第' + str(lineNum) + '行:' + line.rstrip()) # 这里加上rstrip()lineNum += 1
示例输出:
第1行:1024
第2行:2048
第3行:4096
在以上的示例中,均采用for循环,在读取文件时,即将文件逐行输出。
其实还可以将文件中的每一行内容,存储在一个列表中,然后在使用的时候,直接使用列表。
示例:
lineNum = 1
file_path = 'file/data.txt'
with open(file_path) as file_object:lines = file_object.readlines()# 然后通过列表读取数据
for line in lines:print('第' + str(lineNum) + '行:' + line.rstrip())lineNum += 1
输出结果同上。
2. 写入文件
2.1 写入空文件
写入文件时,依旧使用 open() 方法。
其实在 open() 方法中,除了文件路径这个参数外,第二个参数是 文件的模式 。文件的模式主要有:
- ‘r’:读取模式
- ‘w’:写入模式
- ‘a’:附加模式
- 缺省:只读模式
所以,写入文件,只需要将 open() 方法的第二个实参写为’w’即可。
注意:使用写入模式打开文件时,如果指定的文件不存在,则自动创建。如果该文件已存在,则将清空该文件!!!
示例:
file_path = 'file/data2.txt'
with open(file_path, 'w') as file_object:file_object.write('WUT')
将上面的代码运行后,将新建一个 data2.txt 的文件,并写入数据 WUT 。
注意:Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str() 将其转换为字符串格式。
2.2 写入多行
多写几行write语句,即可写入多行数据。
示例:
file_path = 'file/data2.txt'
with open(file_path, 'w') as file_object:file_object.write('I love WUT')file_object.write('I love CST')
上面这个示例将两个句子写入了data2.txt文件中。
这时,打开data2.txt,看到数据是这样的:
I love WUTI love CST
其实想让其单行显示,只需要在每个写入语句末尾加上换行符。
示例:
file_path = 'file/data2.txt'
with open(file_path, 'w') as file_object:file_object.write('I love WUT\n')file_object.write('I love CST\n')
这时,打开data2.txt,看到数据是这样的:
I love WUT
I love CST
这符合我们的预期。
2.3 内容追加
看到这里,内容追加也就很简单了。
直接使用 附加模式 打开文件,即可进行内容的追加。
接着上面的data2.txt文件,这次以附加模式打开这个文件,然后再写入几行数据:
file_path = 'file/data2.txt'
with open(file_path, 'a') as file_object:file_object.write('Zhang San love WUT\n')file_object.write('Li Si love WUT,also\n')
这时,即可将上面的内容追加到data2.txt文件中。
参考文献:
[1] Python编程:从入门到实践
如果有帮助,感谢动动小手点个赞 (๑•̀ㅂ•́)و✧❤
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
