首先建立演示文件pi_digits.txt,保存到和python程序相同的目录里
3.1415926535
8979323846
2643383279
Python实例
with open('pi_digits.txt') as file_object:
contents=file_object.read()
print(contents)
open()函数——用于打开文件,参数接受要打开文件的名称,Python默认在当前执行文件所在目录中查找指定的文件(也可添加文件的相对路径或绝对路径)——函数返回一个表示文件的对象,Python将这个对象存储在将在后面使用的变量中(这里是file_object)
关键字with在不再需要访问文件后将文件关闭。当然也可以调用**open()和close()**来将文件打开或关闭。
**注:**若没有妥善关闭文件可能会 导致数据丢失或受损。所以不推荐close()
将文件存储在file_object中后可调用read()方法读取文件的全部内容,并将其作为一个很长的字符串存在contents变量中。
要以每次一行的方式检查文件,可以对文件对象使用for循环
with open('pi_digits.txt') as file_object:
#contents=file_object.read()
#print(contents)
for line in file_object:
print(line)
#运行结果:
3.1415926535
8979323846
2643383279
结果中的空行如此多的原因:原本的字符串中每行之后都有一个换行符,Print函数在打印的时候也会自己带一个换行符。
可以通过使用字符串的rstrip()方法删除空行
with open('pi_digits.txt') as file_object:
for line in file_object:
print(line.rstrip())
使用with时,open()返回的文件对象只在with的代码块内可用,若要在代码块中访问文件内容,在with代码块中将文件各行储存在一个列表中,并在代码块外使用该列表。
python实例
with open('pi_digits.txt') as file_object:
lines=file_object.readlines()
#readlines方法的功能就是读取文件的每一行然后返回一个列表
for line in lines:
print(line.rstrip())
读取文件以后,就可以根据存储文件内容的变量类型对它进行操作
就已经介绍的内容来说,这些方法只能读入文件内容,并不能直接对文件本件进行修改。
open()函数的第二个参数——控制打开文件的方式:
- 'w’写入模式
- 'r’读取模式(默认)
- 'a’附加模式
- 'r+'读写模式
filename='p.txt'
with open(filename,'w') as fileobject:
file_object.write('zzzzzzzzz.')
给文件添加内容,而不覆盖原本的内容,可以与附加模式打开文件。这样python不会在返回文件对象时清空文件。
写入到文件的行都将添加到文件末尾。
如果指定文件不存在,python将会自动创建一个空文件。
filename='p.txt'
with open(filename,'a') as fileobject:
file_object.write('yyyyyyyyy.')
python使用 被称为异常的特殊对象来管理程序执行期间发生的错误。
每当产生让python不知所措的错误时,会创建一个异常对象,如果编写了处理异常的代码,程序将继续运行;如果没有对异常进行处理,程序将停止,并显示一个traceback,包含有关异常的报告。
下面介绍处理异常的方法。
>>> print(19/0)
Traceback (most recent call last):
File "", line 1, in
ZeroDivisionError: division by zero
try:
print(19/0)
except ZeroDivisionError:
print('不可以除以0哦')
try:
print(19/0)
except ZeroDivisionError:
pass
#这样,错误发生时,既不会出现tracebacka,也不会有任何的输出提示
工作原理:
python尝试实行try代码块中的代码,只有可能引发异常的代码才需要放在try语句中。有时候,有一些仅在try代码块成功执行时才需要运行的代码;这些代码应该放在else代码块中。except代码块告诉python,如果它尝试运行try代码块中的代码时引发了指定异常,该这么办。
json模块可以将简单的python数据结构转储到文件中,并在文件再次运行时加载该文件中的数据。还可以使用json在python程序之间分享数据。
JSON数据格式也并非python专用,还可以与别的语言共用。
json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。
import json #导入json模块
numbers=[2,3,5,7,11,13] #创建数字列表
filename='numbers.json' #指定要将该数字列表储存到其中的文 件的名称,并使用文件扩展名.json 指出文件存储的数据为json格式
#以写入模式打开文件,让数据可以写入其中
with open(filename,'w') as f_obj:
#使用json.dump()函数将数字列表存储到文件中
json.dump(numbers,f_obj)
打开文件查看结果,发现文件中数据的存储格式与python中的一样。
[2,3,5,7,11,13]
json.load()将列表读取到内存中。
import json
filename='numbers.json' #规定要读取的文件
with open(filename) as f_obj:
#使用json.load()加载存储在文件中的信息,并将其存储到变量numbers中
numbers=json.load(f_obj)
print(numbers)
对于用户生成的数据,如果不以某种方式进行存储,等程序停止运行时,用户的信息将丢失。
import json
username=input('What is your name?')
filename='username.json'
with open(filename,'w') as f_obj:
json.dump(username,f_obj)
print("We'll remember you when you come back,"+username+'!')
import json
filename='username.json'
with open(filename) as f_obj:
username=json.load(f_obj)
print('Welcome back,'+username+'!')