从文件中读取数据
10.1.1读取整个文件
pi_digits.txt
3.1415926535
897932846
2643383279
file_reader.py
with open('pi_digits.txt') as file_object:
contents = file_object.read()
print(contents)
open():要打开文件的名称
关键字with在不在徐访问文件后将其关闭。
10.1.2 文件路径
相对路径
这行代码让python到文件夹python_work下的文件夹text_files中去查找指定的.txt文件。在windows系统中,在文件路径中使用反斜杠(\)而不是斜杠(/)
with open('text_file\filename.txt') as file_object:
绝对路径
file_path ='c:\Users\ehmatthes\other_files\text_files\filename.txt'
with oprn(file_path) as file_object:
10.1.3 逐行读取
要以每次一行的方式检查文件,可对文件对象使用for循环:
file_reader.py
filename ='pi_digits.txt'
with open(filename) as file_object:
for line in file_object:
print(line)
删除空白行
filename ='pi_digits.txt'
with open(filename) as file_object:
for line in file_object:
print(line.rstrip())
10.1.4
创建一个包含文件各行内容的列表
使用关键字with时,open()返回的文件对象只在with代码块内可用。如果要在with代码块外访问文件的内容,可在with代码块内将文件的各行存储在一个列表中,并在with代码块外使用该列表
filename ='pi_digits.txt'
with open(filename) as file_object:
lines = file_object.readlnes()
for line in lines:
print(line.rstrip())
10.1.5 使用文件的内容
pi_string.py
filename = 'pi_digits.txt'
with open(filename) as file_object:
lines =file_object.readlines()
pi_string = ''
for line in lines:
pi_string += line.rstrip()
print(pi_string)
print(len(pi_string))
删除空格
pi_string.py
filename = 'pi_digits.txt'
with open(filename) as file_object:
lines =file_object.readlines()
pi_string = ''
for line in lines:
pi_string += line.strip()
print(pi_string)
print(len(pi_string))
10.1.6包含一百万位的大型文件
pi_string.py
filename = 'pi_million_digits.txt'
with open(filename) 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))
10.1.7圆周率中有你的生日吗?
pi_string.py
filename = 'pi_million_digits.txt'
with open(filename) 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 i_string:
print("Your birthday appears in the first million digits of pi!")
else:
print("You birthday does not appear in the first million digits of pi.")
print(pi_string)
print(len(pi_string))