学习笔记:
文件读取:
要让Python打开不与程序文件位于同一个目录中的文件,需要提供文件路径,它让Python到系统的特定位置去查找。
在Linux和OS X中,你可以这样编写代码:with open('text_files/filename.txt') as file_object:
在Windows系统中,在文件路径中使用反斜杠(\)而不是斜杠(/):with open('text_files\filename.txt') as file_object:
运行时报错:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
原因:在windows系统中读取文件路径时用\,但是在python中\有转义的含义
解决方法:1.在路径前面加r;2.将所有\替换成\\;3.将所有\替换成/
用python读写文件:
调用open()时提供了两个实参,第二个实参可指定读取模式('r')、写入模式('w')、附加模式('a')或让你能够读取和写入文件的模式('r+')。如果要写入的文件不存在,函数open()将自动创建它。如果指定的文件已经存在,Python将在返回文件对象前清空该文件。
注:
Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。
写入模式'w'会将原来文件中的内容清空再写入,但是附加模式'a'只会将输入内容写在原来文件的末尾。
write()不会在最后添加换行符。
处理异常:
异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是令用户迷惑的traceback。
try-except-else代码块的工作原理大致如下:Python尝试执行try代码块中的代码;只有可能引发异常的代码才需要放在try语句中。有时候,有一些仅在try代码块成功执行时才需要运行的代码;这些代码应放在else代码块中。except代码块告诉Python,如果它尝试运行try代码块中的代码时引发了指定的异常,该怎么办。
模块json:
模块json让你能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。你还可以使用json在Python程序之间分享数据。更重要的是,JSON数据格式并非Python专用的,这让你能够将以JSON格式存储的数据与使用其他编程语言的人分享。这是一种轻便格式,很有用,也易于学习。
json.dump(content,filename):在文件中储存内容
json.load(filename):在文件中下载内容
随手写的代码:
file_path='C:/Users/12238/Desktop/python_work/text_files/pi_digits.txt'
with open(file_path) as file_object:content=file_object.read()print(content.rstrip())lines=file_object.readlines()#逐行读取,储存为列表pi_line=''
for line in lines:pi_line+=line.strip()print(pi_line)
print(len(pi_line))file_path='C:/Users/12238/Desktop/python_work/text_files/pi_digits.txt'
with open(file_path,'a') as file_object:file_object.write("\ni love you,too")
a=input("please tell me your favorite number: ")
a=int(a)
try:print(5/a)
except ZeroDivisionError:print("you can't do it")
print("please give me two numbers and I'll divide them.")
print("you can stop by type in 'q'")
while True:first_number=input("give me first number: ")if first_number=='q':breaklast_number=input("give me last number: ")