目录
1 文件
1.1 读文件
以下显示python中文件读取操作的代码:
with open('data.txt') as file_object:
contents = file_object.read()
这里有几个关键点:
1. open()函数:这里open函数负责打开文件,而传入的参数即为要打开文件的路径;
2. 关键字 ' with ' :这里的with负责在不再需要访问文件后将其自动关闭;
3. read()函数:read函数负责读取这个文件的全部内容(read()到达文件末尾时会返回一个空的字符串,打印的时候就显示为一个空行,若要删除该空行,可在print()中使用rstrip()函数)
1.2 写文件
以下显示python中文件写操作的代码:
with open(filename, 'w') as file_object:
file_object.write("I love programming.")
这里将文本写入文件时,我们需要在调用open()时提供另一个参数,以告诉python你要进行的操作。这里的操作包括:
1. 'w' :写入模式
2. 'r' : 读取模式
3. 'a' : 附加模式
4. 'r+' : 读写模式
* 其中需要注意的是使用 'w' 写入模式时,若指定的文件已存在,python会在返回文件对象前清空该文件的内容
* 'w' 和 'a'模式都不会自动分行,所以每次我们进行写文件内容时需要自己加上 '\n'
1.3 文件的其他操作
1. 创建一个包含文件各行内容的列表
with open(filepath) as file_object:
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
这里的readline()方法负责从文件中读取每一行并将其存储在一个列表中
2. 检查字符串是否包含在文件中
--snip--
for line in lines:
pi_string += line.rstrip()
birthday = input("Enter your birthday, in the form mmddyy: ")
if birthday in pi_string:
print('Your birthday is in the file')
else:
print('Your birthday is not in the file')
这里我们先读取了文件的内容,然后再通过一个if判断语句,来检查字符串是否包含在文件中
1.4 存储数据(JSON模块)
json(JavaScript Object Notation)模块能够将简单的python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。同时,json不仅可以在python程序间分享数据,它也可让你以JSON格式存储的数据域使用其他编程语言的人分享。
1. json.dump() 和 json.load()
下面我们根据两个例子来理解这两个方法:
例1:
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = 'numbers.json'
with open(filename, 'w') as f:
json.dump(numbers, f)
这里我们先导入模块json,再创建一个数字列表,然后在下面指定我们需要将数字列表存储到的文件名(以.json来指出文件存储的数据为JSON格式),最后通过json.dump()函数将数字列表存储到文件numbers.json中。
例2:
import json
filename = 'numbers.json'
with open(filename) as f:
numbers = json.load(f)
print(numbers)
这里我们导入模块json后,先指定需读取的文件名,然后通过json.load()来加载存储在numbers.json中的信息,并将其赋给变量numbers。
2 异常
2.1 try-except-else代码块
下面我们给出在处理ZeroDivisionError异常的例子:
try:
answer = int(first_number) / int(second_number)
except ZeroDivisionError:
print("You can't divide by zero!")
else:
print(answer)
在本例中,如果try代码块中的代码引发了ZeroDivisionError异常,则Python会查找指出了该怎么办的except代码块,并运行其中的代码。这样,用户看到的是一条友好的错误信息,而不是traceback。同时,else代码块负责运行try代码块成功执行的代码。