python学习–文件和异常
文件读取: r’路径\文件名’ or ‘/路径/文件名’
若是用关键字with打开,则不再需要访问文件后将其关闭(即只需要打开文件,并在需要时使用它,python自己会在合适的时候将其自动关闭),因为可能不知道何时使用close()语句关闭文件最合适。
逐行读取
with open(filename) as file_object:
for line in file_object:
print(line)
创建一个包含文件各行内容的列表
使用关键字with时,open()返回的文件对象只在with代码块内可用。如果要在with代码块以外访问文件的内容,可在with代码块内将文件的各行存储在一个列表中,然后就可以在with代码块以外使用这个列表。
示例代码:
with open('C:/Users/86159/PycharmProjects/untitled1/pi_digits.txt') as file_object:
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
使用文件的内容
将文件读取到内存后,就可以以任何方式使用这些数据
以圆周率文件做例子:
with open('C:/Users/86159/PycharmProjects/untitled1/pi_digits.txt') as file_object:
lines = file_object.readlines()
pi_string = ''
for line in lines:
pi_string += line.strip()
print(pi_string)
print(len(pi_string))
note:读取文本文件时,python将其中的所有文本都解读为字符串。如果你读取的是数字,并要将其作为数值使用,请使用相应的int()函数或者float()函数将其转变为数值
包含一百万位的大型文件
with open(r'C:\Users\86159\PycharmProjects\untitled1\pi_million_digits.txt') as file_object:
lines = file_object.readlines()
pi_string = ''
for line in lines:
pi_string += line.strip()
print(pi_string[:52] + "...")
print(len(pi_string))
查看圆周率中是否包含我的生日
with open(r'C:\Users\86159\PycharmProjects\untitled1\pi_million_digits.txt') as file_object:
lines = file_object.readlines()
pi_string = ''
for line in lines:
pi_string += line.strip()
birthday = input("Enter your birthday, in the form mmddyy: ")
if birthday in pi_string:
print("Your birthday appears in the first million digits of pi!")
else:
print("Your birthday does not appear in the first million digits of pi.")