python 读取文件

读取文本文件中的信息,首先需要将信息读取到内存中,

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()确定列表的长度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值