python学习9:文件和异常

python学习9:文件和异常

1 从文件中读取数据

要使用文本文件中的信息,首先需要将信息读取。为此可以一次性读取文件的全部内容,或者以每次一行的方式逐步读取。

1.1 读取整个文件

在目录下保存一个txt文件。

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

print(contents.rstrip())

结果:

3.1415926535
8979323846
2643383279
  • 函数open()接收一个参数:要打开文件的名称。python在当前执行的文件所在的目录中查找指定的文件,返回一个表示文件的对象。
  • 关键字with在不再需要访问文件后将其关闭。
  • 方法read()读取文件的全部内容,将其作为一个字符串赋给变量,但到达文件末尾时返回一个空字符串,即空行,可使用rstrip()删去。

1.2 文件路径

绝对文件路径:将文件在计算机中的准确位置告诉python,一般比较长,因此将其赋给一个变量,再将该变量传递给open()

file_path = 'D:\\pycharm\\python实践\\文件和异常\\pi_digits.txt'
with open(file_path) as file_object:
  • 如果在文件路径中直接使用反斜杠比较容易引发错误,因此需要对每个反斜杠进行转义,如\\

1.3 逐行读取

要以每次一行的方式检查文件,可对文件对象使用for循环。

file_path = 'D:\\pycharm\\python实践\\文件和异常\\pi_digits.txt'
with open(file_path) as file_object:
    for line in file_object:
        print(line.rstrip())

结果:

3.1415926535
8979323846
2643383279

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

使用关键字with时,open()返回的文件对象只在with代码块内可用。如果要在with外访问文件内容的话,可以在with代码块内将文件的各行存储在一个列表中

file_path = 'D:\\pycharm\\python实践\\文件和异常\\pi_digits.txt'
with open(file_path) as file_object:
    lines = file_object.readlines()

for line in lines:
    print(line.rstrip())
  • 方法readlines()从文件中读取每一行,并将其存储在一个列表中。

1.5 使用文件的内容

file_path = 'D:\\pycharm\\python实践\\文件和异常\\pi_digits.txt'
with open(file_path) as file_object:
    lines = file_object.readlines()

pi_string = ''
for line in lines:
    pi_string += line.rstrip()

print(pi_string)
print(len(pi_string))

结果:

3.141592653589793238462643383279
32

2 写入文件

2.1 写入空文件

要将文本写入文件,在调用open()时需要提供另一个实参,告诉python要写入打开的文件。

filename = 'programming.txt'
with open(filename, 'w') as file_object:
    file_object.write("I love programming.")
  • 调用open()时提供了两个实参。第一个实参是要打开的文件的名称,第二个实参('w')告诉python,要以写入模式打开这个文件。模式有:读取('r')、写入('w')、附加(a)、读写(r+)
  • 如果要写入的文件不存在,open()将自动创建它,如果存在,python将在返回文件对象前清空该文件的内容
  • python只能将字符串写入文本文件,要将数值数据存储到文本文件中,必须使用函数str()将其转化为字符串格式。

2.2 写入多行

函数write()不会在写入的文本末尾添加换行符,因此如果在写入多行时没有指定换行符,文件看起来不会像希望的那样:

filename = 'programming.txt'
with open(filename, 'w') as file_object:
    file_object.write("I love programming.")
    file_object.write("I love creating new games.")
结果:
I love programming.I love creating new games.

因此需要在调用write()时包含换行符。

2.3 附加到文件

如果要给文件添加内容,而不是覆盖原有的内容,可以以附加模式打开文件。这样不会清空原有的文件,而是将写入的文件的行添加到文件末尾。

with open(filename, 'a') as file_object:

3 异常

使用try-except代码块时,即便出现异常,程序也将继续运行,显示编写的友好的错误信息,而不是traceback。

try:
    print(5 / 0)
except ZeroDivisionError:
    print("You can't divide by zero!")
结果:
You can't divide by zero!

4 存储数据

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

使用json模块来存储数据,可以将简单地python数据结构转储到文件中,并在程序再次运行时加载文件中的数据。(json格式可以与其他编程语言分享)

import json

numbers = [2, 3, 5, 7, 11, 13]
filename = 'numbers.json'
with open(filename, 'w') as f:
    json.dump(numbers, f)
  • 函数json.dump()接收两个实参:要存储的数据,可用于存储数据的文件对象。
import json

filename = 'numbers.json'
with open(filename, 'r') as f:
    numbers = json.load(f)

print(numbers)

函数json.load()加载存储在numbers.json中的信息,并将其赋给numbers。

5 参考文献

python从入门到实践

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
头歌作业python开发技术文件异常4主要是讲解关于如何处理文件操作以及异常处理的知识。 在Python中,我们可以使用open()函数来打开一个文件,并指定文件的路径。文件路径可以是一个绝对路径或相对路径。打开文件后,我们可以使用read()方法来读取文件内容,使用write()方法来向文件中写入内容。读取和写入的内容可以是字符串,可以是二进制数据。 在进行文件操作时,我们需要记得在完成操作后关闭文件,以释放文件资源。可以使用close()方法来关闭文件。为了更好地处理文件操作,避免遗忘关闭文件,我们还可以使用with语句来打开文件,并在处理完后自动关闭文件。这样能够提高代码的简洁性和可读性。 另外,异常处理是编程中非常重要的一部分。在程序运行过程中,可能会出现各种错误和异常,如文件不存在、数据不符合要求等。为了防止程序崩溃,我们可以使用try-except语句来捕捉和处理异常。通过try-except语句,我们可以指定响应特定异常的代码块,一旦程序遇到异常,代码会跳转到except块,并执行相应的处理逻辑。我们还可以在except块中使用finally语句来执行一些无论异常是否发生都需要执行的代码。 在文件操作中,被广泛使用的一个异常是FileNotFoundException,用于捕捉文件不存在的情况。当程序试图打开一个不存在的文件时,就会抛出该异常。我们可以通过try-except捕捉这个异常,并进行适当的处理,例如输出一个错误提示,或创建一个新的文件。 在学习文件操作和异常处理时,我们需要了解不同类型的异常以及如何处理它们。通过合理地处理文件操作和异常,我们可以提高程序的健壮性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值