读取文本文件中的信息,首先需要将信息读取到内存中,
pi_digits.txt:3.1415926535
8979323846
2643383279
将该文件保存在程序所在目录
打开并读取文件
with open('pi_digits.txt') as file_object:#file_object也可以是f,是常见做法
contents=file_object.read()
print(contents)
open 函数接受一个参数:文件名称 python在当前执行的文件所在的目录中查找指定文件
open('pi_digits.txt')返回一个表示文件pi_digits.txt的对象,将该对象赋给file_object供以后使用
contents=file_object.read()使用方法read()读取文件的全部内容
print(contents.rstrip())使用方法rstrip()删除字符串末尾的空白
打开不在程序目录的文件,需要提供文件路径,让python到指定的位置去找
如
python_work文件夹
XXX.py 读取文件的程序
text_files 文件夹
filename.txt
with open('text_files/filename.txt') as file_object:
text_files/filename.txt 绝对文件路径
.txt不在python_work文件夹中时,可
file_path='/home/ehmatthes/others_files/text_files/filename.txt'
with open(file_path) as file_object:
创建一个包含文件各行内容的列表
如
filename='pi_digits.txt'
with open(filename) as file_object:
lines=file_object.readlines()
for line in lines:
print(line.rstrip())
readlines()方法从文件中读取每一行,并将其存储在一个列表中
读取文本时,python将其中的所有文本解读为字符串
写入文件
filename='programming.txt'
with open(filename,'w') as file_object:
或者with open(filename,encoding='utf-8') as file_object:
#encoding='utf-8'在系统的默认编码与要读取的文件使用的编码不一致时,必须这样做
file_object.write('i love programming')
open(filename,'w')第一个是文件名称,第二个以写入模式打开文件;python只能以字符串写入文件,'r'读取模式,'a'附加模式:不覆盖原有内容,将写入的内容添加到现有文件末尾,'r+'读写模式,如果省略第二个,则以只读模式打开文件
异常
zerodivisionerror: 不能用数除以0,否则会出现这个错误
try-except:try的代码没问题直接跳过except,有问题的话,则执行except;或者执行except时代码块用pass ,此时pass充当占位符,保持静默失败
try-except-else :try执行成功的话,就执行else代码块,否则执行except
filenotfounderror
存储数据
使用模块json来存储数据
函数json.dump()存储数据,接受两个实参,一是要存储的数据,二是可用于存储数据的文件对象
import json
numbers=[2,3,4,15,6,78,8,9]
filename='numbers.json'#指定存储到哪个文件中,通常使用文件扩展名.json指出文件存储的数据为JSON格式
with open(filename,'w') as f:,
json.dump(numbers,f)#使用json.dump()将数字列表存储到文件numbers.json中
函数json.load()将列表读取到内存中
import json
filename='numbers.json'#指定存储到哪个文件中,通常使用文件扩展名.json指出文件存储的数据为JSON格式
with open(filename) as f:#读取的是前面写入的文件
numbers=json.load(f)
print(numbers)
小知识:
方法spilt()以空格为分隔符将字符串分拆成多个部分,并存储到一个列表里
方法len()确定列表的长度