一、从文件中读取数据
创建一个名为pi的文本文件,存储小数点后30位的圆周率,且在小数点后每10位都换行:
pi.txt
1.读取整个文件
with open('pi.txt') as file_object:
contents = file_object.read()
print(contents)
2.逐行读取
with open('pi.txt') as file_object:
for line in file_object:
print(line.rstrip())
3.创建一个包含文件各行内容的列表
with open('pi.txt') as file_object:
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
二、写入文件
1.写入空文件
filename = 'programming.txt'
with open(filename, 'w') as file_object:
file_object.write("I Love Programming!")
函数open()的第一个实参是要打开的文件的名称,如果要写入的文件不存在,自动创建它。
第二个实参('w')告诉Python,以写入模式打开这个文件。打开文件时,可指定读取模式('r')、写入模式('w'),附加模式('a')或能够同时读取和写入的模式('r+')。如果省略,默认以只读模式打开。
以写入模式打开文件时,如果指定文件已经存在,Python将在返回文件对象前清空该文件。
如果要将数值数据存储到文本文件,必须先使用函数str()将其转换为字符串格式。
2.写入多行
函数write()不会在写入的文本末尾添加换行符。若是要让每个字符串单独占一行,需要在write()语句中包含换行符 \n。
3.附加到文件
如果想给文件添加内容,而不是覆盖原有内容,可以附加模式打开文件,写入到文件的行都添加到文件末尾。
三、存储数据
模块json能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。
number_write.py
import json
numbers = [2, 3, 4, 5, 6]
filename = 'number.json'
with open(filename, 'w') as f_obj:
json.dump(numbers, f_obj)
函数json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。
number_reader.py
import json
filename = 'number.json'
with open(filename) as f_obj:
numbers = json.load(f_obj)
print(numbers)