Python文件操作与异常处理实战指南

花开有时
花开有时
发布时间:2026-10-15 | 3人浏览过
原创

本文详解Python中文件读取、写入及追加模式的使用方法,涵盖open、read、readlines等核心函数。深入解析try-except异常处理机制,包括ZeroDivisionError和FileNotFoundError的处理及静默失败技巧。最后介绍利用json模块进行数据持久化存储与重构的最佳实践,帮助开发者掌握文件IO与错误管理的核心技能。

一、文件和异常

1.1从文件中读取数据

读取整个文件

首先需要在程序所在的同一目录下创建一个文本文件,以便后续进行读取操作。

greet.txt “Hello World! Hello World! Hello World! Hello World!”


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

若txt文件包含中文字符,为避免输出乱码,建议在open函数中指定encoding='UTF-8'参数,例如:with open('greet.txt', encoding='UTF-8') as file_object:。

1.2open()

任何文件操作前必须先打开文件。open()函数接收文件名作为参数,返回一个表示该文件的对象,通常将其赋值给变量(如file_object)以便后续调用。

1.3关键字with

使用关键字with可在代码块执行完毕后自动关闭文件,无需手动调用close()。虽然也可以显式使用open()和close(),但不推荐这种做法,因为若程序在close()前发生错误,文件可能无法正确关闭。

1.4read()

read()方法用于读取文件的全部内容,并将其作为单个长字符串赋值给变量(如contents),方便后续处理。

二、逐行读取


with open('greet.txt',encoding='UTF-8') as file_object:
   for line in file_object:
      print(line)

直接打印文件内容时,可能会发现多出了空白行。这是因为文件末尾存在换行符,而print()函数本身也会添加换行符。为解决此问题,可以使用rstrip()方法去除字符串末尾的空白字符。


with open('greet.txt',encoding='UTF-8') as file_object:
   for line in file_object:
      print(line.rstrip())

三、创建一个包含文件各行内容的列表


with open('greet.txt',encoding='UTF-8') as file_object:
   lines=file_object.readlines()
for line in lines:
   print(line.rstrip())

3.1readlines()

readlines()方法从文件中读取每一行,并将这些行存储在一个列表中,便于按行索引访问或处理。

四、查找字符串中是否含有特定的字符串


greet_str=''
with open('greet.txt',encoding='UTF-8') as file_object:
   lines=file_object.readlines()
for line in lines:
   greet_str+=line
input_str=input('输入你想查找的字符串')
if input_str in greet_str:
   print('有')
else :
   print('无')

4.1对字符串进行修改


message='Hello World!'
print(message.replace('World','China'))

五、写入文件

5.1写入空文件


with open('greet.txt','w',encoding='UTF-8') as file_object:
   file_object.write('我爱编程')

在open()函数中,'w'表示以写入模式打开文件。其他可用模式包括:读取模式'r'、附加模式'a'以及读写模式'r+'。若省略模式参数,默认以只读模式打开文件。

使用写入模式时需格外谨慎,因为该模式会清空文件原有内容,导致数据丢失。

5.2写入多行

write()方法不会自动在文本末尾添加换行符,因此若需写入多行,必须手动在字符串末尾添加换行符(如\n)。

5.3附加到文件

若需在文件末尾追加内容,应使用附加模式'a'打开文件。若指定文件不存在,Python会自动创建一个新文件。


with open('greet.txt','a',encoding='UTF-8') as file_object:
   file_object.write('我爱编程\n')

先greet.txt

六、异常

Python使用名为“异常”的特殊对象来管理程序执行期间发生的错误。异常处理通常通过try-except代码块实现。

6.1处理ZeroDivisionError异常


try:
   print(4/0)
except ZeroDivisionError:
   print('不能数以0')

若try-except代码块后还有其他代码,程序在捕获并处理异常后将继续执行后续代码。


try:
   print(4/0)
except ZeroDivisionError:
   print('不能数以0')
print('--==')

6.2处理FileNotFoundError异常

当使用文件时若找不到指定文件,可通过try-except代码块进行错误处理,避免程序崩溃。

分析文本 split()

split()方法可根据指定分隔符(默认为空格)将字符串拆分为多个部分,并返回一个列表。


str='你好 世界'
print(str.split())

6.3静默失败

当发生异常时,若无需执行任何特定操作,可以选择“静默失败”。


try:
   print(4/0)
except ZeroDivisionError:
   pass

在except块中使用pass语句即可实现静默失败,表明程序未对异常做任何处理。

七、存储数据

json模块可将简单的数据结构存储在文件中。JSON格式不仅可在Python中共享数据,也可被其他编程语言识别和使用。

7.1使用json.dump()和json.load()


import json
number=list(range(10))
with open('number.json','w') as file:
   json.dump(number,file)

json.dump()接受两个参数:要存储的数据和文件对象。通常使用.json作为文件扩展名,以表明文件存储的是JSON格式数据。


import json

with open('number.json') as file:
   number=json.load(file)

print(number)

7.2重构

将代码改进的过程称为重构。重构旨在使代码结构更清晰、更易理解,并便于后续扩展和维护。

到此这篇关于python基础之文件和异常处理的文章就介绍到这了,更多相关python文件和异常内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表