Python学习笔记(五):文件和异常

本文详细介绍了如何使用Python进行文件的读取和写入操作,包括读取整个文件、逐行读取文件、创建文件内容列表及写入文件等内容。此外,还讲解了如何处理文件操作过程中可能出现的异常情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、从文件中读取数据

1、1 读取整个文件

with open('digits.txt') as file_object:
	contents=file_object.read()
	print contents.rstrip()

1)在文件所在目录建立文件digits.txt后,函数open()打开文件存储到变量file_object中

2)关键字with在不需要访问文件后将其关闭

3)有了文件对象后,使用方法read()读取整个文件,将其作为一个字符串存储到变量contens中。

4)read()到达文件末尾时返回一个空字符串,而将这个空字符串显示出来时就是一个空行。要删除末尾的空行,可使用方法rstrip()


1、2 文件路径

with open('/home/qq/python_work/digits.txt') as file_object:
	for line in file_object:
		print line.rstrip()

open()中使用绝对路径来打开文件


1、3逐行读取文件

with open('digits.txt') as file_object:
	for line in file_object:
		print line.rstrip()

1)在文件所在目录建立文件digits.txt后,函数open()打开文件存储到变量file_object中

2)使用循环来遍历文件每一行的内容


1、4  创建一个包含文件各行内容的列表后使用文件的内容

with open('digits.txt') as file_object:
	lines=file_object.readlines()
new_lines=[]
for line in lines:
	new_lines.append(line.rstrip())
print new_lines


1)方法readlines()从文件中读取每一行,将其存储在一个列表中,该列表被存储到变量lines中,接下来建立一个空列表,使用循环遍历列表lines,并将其元素添加到新的列表

new_lines中,打印新列表。

2)读取文本文件时,Python将其中的所有文本都解读为字符串。如果读取的是数字,需要使用int()将其转换为整数



2、写入文件

2、1  写入多行内容

name='a.txt'

with open(name,'w') as file_object:
	file_object.write('fffffffff\n')
	file_object.write('aaaaaaaaa\n')


1)函数open()抵用两个实参,第一个是打开的文件名,第二个是实参'w'是写入模式, 'r'代表读取模式,'a'代表附加模式,'r+'代表读取和写入两种模式
2)如果要写入的文件不存在,函数open()将自动创建他

3)以写入模式'w'打开文件时,如果指定的文件已经存在,Python将在返回文件对象前清空该文件

4)函数write()不会再写入文本末尾添加换行符

5)如果要添加文件内容,而不是覆盖原有的内容,可以附加模式打开文件。


name='a.txt'

with open(name,'w') as file_object:
	file_object.write('fffffffff\n')
	file_object.write('aaaaaaaaa\n')

with open(name,'a') as file_object:
	file_object.write('bbbbbbbbb\n')


file_name='guest.txt'
while True:	
	with open(file_name,'a') as file_object:
		message=raw_input('enter your name:')
		if message=='quite':
			break
		file_object.write(message)

	with open('guest.txt') as file_object:
		print file_object.read()


3、  异常

3、1 使用try--except--else代码块

while True:
	first_num=raw_input('enter first num is:')
	if first_num=='q':
		break
	second_num=raw_input('enter second num is:')
	if second_num=='q':
		break
	try:
		result=int(first_num)/int(second_num)
	except ZeroDivisionError:
		print 'your can not do it'
	else:
		print result

1)只有可能引发异常的代码才需要放在try语句中

2)如果try代码块中的代码运行起来没有问题,Python将跳过except代码块,若try代码块中的代码导致了错误,Python将查找这样的except代码块,并运行其中的代码

3)依赖于try代码块成功执行的代码都应该放到else代码块中


4、使用json模块来存储数据

import json

names=['zhao','qian','sun','li','wang']
filename='name.json'
with open(filename,'w') as f_ob:
	json.dump(names,f_ob)

with open(filename) as f_ob:
	print json.load(f_ob)

1)函数json.dump()接受两个实参:要存储的数据以及用于存储数据的文件对象。

2)通常使用文件扩展名.json来指出文件存储的数据格式为JSON格式。

3)使用json.load()将文件读取到内存中。




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值