从文件中读取数据
读取整个文件:将被读取文件放在程序所在目录,打开文件open()才可访问;
读取整个文件:会在被运行的程序目录下查找要打开的文件;
函数open():括号内为接受的参数,即文件名称;
关键字with:会在不需要访问文件后将其关闭,无需调用close();
方法read():读取文件内的全部内容,read在到达文件末尾时会返回一个空字符串,删除多出来的空行,可使用rstrip();
文件路径:提供路径让python自己去查找,可以不将文件与程序文件放在同一目录,反斜杠!!!;
相对文件路径:大的路径相同,那么只需要提供不重复的路径部分;
绝对文件路径:整个完整的路径,反斜杠不行,就双反斜杠;
逐行读取:以每次一行的方式检查文件,可使用for循环,rstrip();
创建一个包含文件各行内容的列表:目的是可在with代码块外使用列表;
使用文件的内容:python将其中所有的文本都视为字符串;
包含100万位的大型文件:可以指定显示的小数点数量,其余都没变化;
圆周率的生日:
with open('pi_digits.txt') as file_object:#打开文件
contents = file_object.read() #读取文件内容
print(contents)#打印文件内容
#出现空行,用rstrip()
with open('pi_digits.txt') as file_object:#打开文件
contents = file_object.read() #读取文件内容
print(contents.rstrip())#打印文件内容
#相对文件路径
with open('text_files\filename.txt') as file_object:
#逐行读取
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:
lines = file_object.readlines()#读取每一行,并存储到一个列表中
for line in lines:
print(line.rstrip())#可以在with代码块外使用列表
#使用文件的内容
filename = 'pi_digits.txt'
with open(filename) as file_object:
lines = file_object.readlines()#行存入列表
pi_string = ''#空变量
for line in lines:
pi_string += line.strip()#使用strip()删除空格
print(pi_string)
print(len(pi_string))
#大型文件
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] + "...")#只显示到小数点后50位
print(len(pi_string))
filename = 'pi_million_digits.txt'
with open(filename) as file_object:
lines = file_object.readlines()
pi_string = ''
for line in lines:
pi_string += line.rstrip()
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.")
写入文件
写入空文件:"w",.write(),括号内是指要写入的内容;
其他模式:"r",读取模式,"a",附加模式,"r+",读取并写入;
其他模式:若省略了模式形参,则默认只读,使用"w"要小心是否有重名;
写入文件:只能将字符串写入文件,数值得先转换为字符串;
写入多行:write()后无换行符,需手动添加;
添加到文件:将模式形参设置为"a",把要添加的内容write进去就🆗;
#写入空文件,写入多行
filename = "write_try.txt"
with open(filename, "w") as object:
#第一个实参告诉python要打开的文件,第二个是表明要进入写入模式;
object.write("I love python!\n")
object.write("I love you.\n")
with open(filename, "a") as object:
object.write("Could I love you anymore?")
存储数据
json模块:能够将简单的python结构数据转储到文件中,程序运行数据再现,并且可共享;
json.dump():