python怎么读写文件错误-python文件读写和异常

1,文本文件

普通打开

f.open

f.close

def main():

f = None

try:

f = open('致橡树.txt', 'r', encoding='utf-8')

print(f.read())

except FileNotFoundError:

print('无法打开指定的文件!')

except LookupError:

print('指定了未知的编码!')

except UnicodeDecodeError:

print('读取文件时解码错误!')

finally:

if f:

f.close()

if __name__ == '__main__':

main()

with关键字

with open as f

def main():

try:

with open('致橡树.txt', 'r', encoding='utf-8') as f:

print(f.read())

except FileNotFoundError:

print('无法打开指定的文件!')

except LookupError:

print('指定了未知的编码!')

except UnicodeDecodeError:

print('读取文件时解码错误!')

if __name__ == '__main__':

main()

for-in循环逐行读取或者用readlines方法将文件按行读取到一个列表容器中

import time

def main():

# 一次性读取整个文件内容

with open('致橡树.txt', 'r', encoding='utf-8') as f:

print(f.read())

# 通过for-in循环逐行读取

with open('致橡树.txt', mode='r') as f:

for line in f:

print(line, end='')

time.sleep(0.5)

print()

# 读取文件按行读取到列表中

with open('致橡树.txt') as f:

lines = f.readlines()

print(lines)

if __name__ == '__main__':

main()

写入文本文件

from math import sqrt

def is_prime(n):

"""判断市素数"""

assert n > 0

for factor in range(2,int(sqrt(n) + 1)):

if n %factor == 0:

return False

return True if n != 1 else False

def main():

filenames = ('a.txt', 'b.txt', 'c.txt')

fs_list = []

try:

for filename in filenames:

fs_list.append(open(filename,'w',encoding='utf-8'))

for num in range(1,10000):

if is_prime(num):

if num < 100:

fs_list[0].write(str(num)+" ")

elif num < 1000:

fs_list[1].write(str(num)+" ")

else:

fs_list[2].write(str(num)+' ')

except IOError as e:

print(e)

print("文件写入错误")

finally:

for fs in fs_list:

fs.close()

print("操作完成")

if __name__ == '__main__':

main()

2,二进制文件

def main():

try:

with open('guido.jpg', 'rb') as fs1:

data = fs1.read()

print(type(data)) #

with open('吉多.jpg', 'wb') as fs2:

fs2.write(data)

except FileNotFoundError as e:

print('指定的文件无法打开.')

except IOError as e:

print('读写文件时出现错误.')

print('程序执行结束.')

if __name__ == '__main__':

main()

3,json文件

JSON跟Python中的字典其实是一样一样的,事实上JSON的数据类型和Python的数据类型是很容易找到对应关系的,如下面两张表所示。

JSON

Python

object

dict

array

list

string

str

number (int / real)

int / float

true / false

True / False

null

None

Python

JSON

dict

object

list, tuple

array

str

string

int, float, int- & float-derived Enums

number

True / False

true / false

None

null

我们使用Python中的json模块就可以将字典或列表以JSON格式保存到文件中,代码如下所示。

import json

def main():

mydict = {

'name': '骆昊',

'age': 38,

'qq': 957658,

'friends': ['王大锤', '白元芳'],

'cars': [

{'brand': 'BYD', 'max_speed': 180},

{'brand': 'Audi', 'max_speed': 280},

{'brand': 'Benz', 'max_speed': 320}

]

}

try:

with open('data.json', 'w', encoding='utf-8') as fs:

json.dump(mydict, fs)

except IOError as e:

print(e)

print('保存数据完成!')

if __name__ == '__main__':

main()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值