用python读取文件内容,python向文件写入数据
从文件中读取数据
1. 读取整个文件
要读取文件,首先创建一个文件:
然后打开并阅读该文件,然后在屏幕上显示其内容:
file_reader.py
with open( pi _ digits . txt )as file _ object :
内容=file_object.read()
打印(内容)以解释上述代码:
open()-要以任何方式使用文件,您必须首先打开该文件以便可以访问它。这时就需要使用函数open(),它只带一个参数:要打开的文件的名称,返回代表文件的对象。
当不再需要访问文件时,调用close()关闭文件。
Read()-读取文件中的所有内容。
运行结果:
3.1415926535
8979323946
26433832782. 文件路径
要让python打开一个与程序文件不在同一个目录下的文件,需要提供一个文件路径,让python到系统中的特定位置去找。
文件路径的表示形式:
1.相对路径-文件相对于当前运行的程序所在的目录。例如:在程序所在的文件夹c : \ Users \ YXF \ Desktop \ Python _ py charm中新建一个文件夹text_file,用来存放pi_digits.txt文件,此时需要编写这样的代码:
不打开( text _ files \ pi _ digits.txt )作为file _ object33602。绝对文件路径-文件所在的完整路径。绝对路径比相对路径长,所以可以将路径存储在一个变量中,然后将该变量传递给open():
file _ path=r c : \ Users \ yxf \ Desktop \ python _ py charm \ text _ files \ pi _ digits . txt
没有open(file _ path)As file _ object :由于文件路径中使用了反斜杠,在python中被视为转义字符,所以需要在开头的单引号前加R。
相关:《Python视频教程》
3. 逐行读取
一次检查文件:的一行
file_name=pi_digits.txt
withopen(文件名)asfile_object:
forlineinfile_object:
运行结果打印(第行):
3.1415926535
8979323946
243383278通过对file对象使用for循环来遍历文件中的每一行,但是运行结果显示的每一行后面都有更多的空行。为什么?文件中每一行的末尾都有一个不可见的换行符,并且在print语句中添加了一个换行符。要消除这些空行,可以在print语句中使用rstrip():
print(line.rstrip())
以便输出与文件内容完全相同。
4. 创建一个包含文件各行内容的列表
file_name=pi_digits.txt
打开
(file_name)asfile_object:
lines=file_object.readlines()
forlineinlines:
print(line.rstrip())方法readlines():从文件中读取每一行,并将其存储在列表中。
5. 使用文件的内容
file_name='pi_digits.txt'运行结果:withopen(file_name)asfile_object:
lines=file_object.readlines()#将文件内容存储在列表中
pi_string=''#新建一个空字符串
forlineinlines:
pi_string=pi_string+line.rstrip()#删除空白行并转换为字符串
print(pi_string)#打印字符串
print(len(pi_string))#打印字符串长度
3.141592653589793239462643383278运行结果中包含了位于每行左边的空格,为删除这些空格,可使用 strip() 而不是 rstrip(),运行可得:36
3.1415926535897932394626433832786. 包含一百万位的大型数据32
一百万位的文件下载过慢,就复制使用了其中的一小部分,并打印到小数点后的50位:
file_name='pi_xx_digits.txt'运行结果:withopen(file_name)asfile_object:
lines=file_object.readlines()#将文件内容存储在列表中
pi_string=''#新建一个空字符串
forlineinlines:
pi_string=pi_string+line.strip()#删除空白行并转换为字符串
print(pi_string[:52])#打印字符串
print(len(pi_string))#打印字符串长度
3.14159265358979323846264338327950288419716939937510由运行结果可知保存了小数点后的1481位在文件 pi_xx_digits.txt 中。1483
7. 圆周率中包含你的生日吗
可以检测圆周率值的前1483位中是否包含自己的生日:
file_name='pi_xx_digits.txt'withopen(file_name)asfile_object:
lines=file_object.readlines()
pi_string=''
forlineinlines:
pi_string=pi_string+line.strip()
birthday=input('Enteryourbirthday,intheformmmddyy:')
ifbirthdayinpi_string:
print('Yourbirthdayappearsinthefirst1483digitsofpi!')
else:
print('Yourbirthdaydoesnotappearsinthefirst1483digitsofpi.')
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。