- 关于文件和异常
- 读取文件时,使用read()函数(该函数是全文读取)时在到达文件末尾时返回一个空字符串,解决方法是:rstrip()删除字符串末尾的空白
with open('text.txt') as file_object:
contents = file_object.read()
print(contents.rstrip())
- 逐行读取
读取文件时,常常需要检查其中的每一行,可能需要查找特定的信息,或者以某种方式修改文件中的文件。
filename = 'text.txt'
with open(filename) as file_object:
for line in file_object:
print(line.rstrip())
- 包含文件各行内容的列表
使用关键字with时,open()返回的文件对象只在with代码块内可用。如果要在with代码块外访问文件的内容,可在with代码块内将文件的各行存储在一个列表中,并在with代码块外使用该列表。
filename = 'text.txt'
with open(filename) as file_object:
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
- 读取数字时注意:读取文本时,Python将其中的所有文本都解读为字符串。如果你读取的是数字,并将其作为数值使用,就必须使用函数int()将其转变为整数或者使用函数float()将其转换为浮点数。
- 将数据写入文件(一行数据)
filename = 'programming.txt'
with open(filename,'w') as file_object:
file_object.write('I love programming.')
- 将数据写入文件(多行数据)
- 函数wirte()不会在你写入的文本末尾添加换行符,因此如果你写入多行时没有指定换行符,文件看起来可能不是你希望的那样。因此要让write()语句中包含换行符。
- 异常:管理程序执行期间发生的错误。如果编写了处理该异常的代码,程序将继续运行,如果未对异常进行处理,程序将停止并报告错误。
- 使用try-except-else代码块来处理可能引发的异常
try:
print(5/0)
except ZeroDivisionError:
print('You Can't divide by zero.')
while True:
first_number = input('first_numabe:')
if first_number == 'q':
break
second_number = input('second_number:')
if second_number == 'q'
break
try:
result = int(first_number) / int(second_number)
except:
print('You can't divide by 0 !')
else:
print(result)
- 程序要求用户输入数据,一般来讲都会将用户提供的数据存储在列表和字典等数据结构中,存储它们的方式是:使用模块Json模块
- 使用dump()将文件信息写入Json文件中。
- 使用load()将文件信息载入到程序中或者变量中。