Python学习笔记(八)

该段代码展示了Python中如何处理文件读取,尝试读取'pi.txt'文件内容并以列表形式存储,若文件不存在则打印错误信息。之后将读取到的内容转换为JSON格式并写入'pi.json'文件。注意,JSON数据的最后一行不需要'/n'。
摘要由CSDN通过智能技术生成

对应第十章
如果文件内容不是逐行输出则会输出列表形式。

try:
    with open('D:\\pycharmprograms\\pi.txt') as f:
        contents=f.readlines()
except FileNotFoundError:
    print("FileNotFoundError")
else:
    print(contents)
>>>['3.1415926535\n', '  8979323846']

json数据格式的列表最后一行没有/n

import json
try:
    with open('D:\\pycharmprograms\\pi.txt') as f:
        contents=f.readlines()
except FileNotFoundError:
    print("FileNotFoundError")
else:
    with open('D:\\pycharmprograms\\pi.json','w') as f:
        json.dump(contents,f)
>>>["3.1415926535\n", "  8979323846"]

questions:

  • python是否是默认逐行读入,列表储存?

并不是,程序中使用了方法readlines(),该方法返回一个列表

  • 参数encoding的作用?

open()函数完整的语法格式为:

open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True)

encoding:所要打开文件的编码格式读取文件的时候,如果编码不对,会报错列如filename=‘data.csv’(该文件的编码格式是utf-8)

open(filename,encoding=‘gbk’)(调用函数时用的是gbk编码)会出现类似以下报错UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position 423: illegal multibyte sequence

正确的打开方式是open(filename,encoding=‘utf-8’)

读取时如果不指明编码格式,默认使用locale.getpreferredencoding()函数返回的编码方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值