1.从文件中读取数据
假设现在有一个存储圆周率的txt文件
image.png
with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:#open()函数,打开文件,里面是文件路径加文件名,window系统用反斜杠(\),linux系统用斜杠(/)
contents = file_object.read()#read()函数,读取文件
print(contents)
3.1515926535
8979323846
2643383279
===================================
#发现最后一行出现空格,因为read()函数到达文件末尾时返回一个空字符串,这个空字符串显示出来时就是一个空行,用rstrip()函数删除末尾空行
with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
contents = file_object.read()
print(contents.rstrip())
3.1515926535
8979323846
2643383279
========================================
#逐行读取,使用for循环,发现空白行更多了,因为每行的末尾都有一个看不见的换行符,print语句也会加上一个换行符,因此每行末尾都有两个换行符,一个来自文件,另一个来自print语句
with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
for line in file_object:
print(line)
3.1515926535
8979323846
2643383279
=========================================
消除多余空白行,用rstrip()函数
with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
for line in file_object:
print(line.rstrip())
3.1515926535
8979323846
2643383279
=====================================
#创建一个包含文件各行内容的列表
with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
lines = file_object.readlines()#readlines()从文件中读取每一行,将其存储在一个叫lines的列表中
for line in lines:#使用for循环打印lines中的各行
print(line.rstrip())
3.1515926535
8979323846
2643383279
======================================
#使用文件的内容,将内容转为字符串,它包含文件中存储的所有数字,且没有任何空格
with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
lines = file_object.readlines()
pi_string = ''#创建pi_string变量,存储圆周率的值
for line in lines:
pi_string += line.rstrip()#将各行都加入pi_string,并删除每行末尾的换行符
print(pi_string)
print(len(pi_string))
3.1515926535 8979323846 2643383279
38
==============================================
#在变量 pi_string存储的字符串中,包含原来位于每行左边的空格,为删除这些空格,可使用strip()而不是rstrip()
with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
lines = file_object.readlines()
pi_string = ''#创建pi_string变量,存储圆周率的值
for line in lines:
pi_string += line.strip()#将各行都加入pi_string,并删除每行末尾的换行符
print(pi_string)
print(len(pi_string))
3.151592653589793238462643383279
32
#假设精确到小数点后一百位的圆周率,只要内存够大,想处理多少数据都可以
#注意,读取文本文件时,python将其中的所有文本都解读为字符串,如果要读取的是数字,并要将其作为数值使用,就必须使用函数int()将其转换为整数,或使用函数float()将其转为浮点数
2.写入文件
保存数据最简单的方式是将其写入到文件中,通过将输出写入文件,即便关闭包含程序输出的终端端口,这些输出也依然存在.
1.写入空文件
###1.写入空文件,如果要写入的文件不存在,python将自动给创建它
with open(r'C:\Users\YLAB\python练习\programming.txt', 'w') as file_object:#参数'w'表示以写入模式打开这个文件,此外'r'表示读取模式,'a'表示附加模式,'r+'表示读取和写入模式,python默认为只读模式
file_object.write('i love programming')#write()函数,将一个字符串写入文件
#注意,只能将字符串写入文本文件,如果是数值,要使用str()函数先将数值转换为字符串格式
image.png
2.写入多行,write()函数不会在写入的文本末尾添加换行符,需要在write()中包含换行符
with open(r'C:\Users\YLAB\python练习\programming.txt', 'w') as file_object:
file_object.write('i love programming\n')
file_object.write('i love eatting\n')
#还可以使用空格,制表符,空行设置这些格式的输出
image.png
3.附加到文件,给文件添加而不是覆盖原有内容,可以用附加模式打开文件
#在programming.txt文件中添加两行
with open(r'C:\Users\YLAB\python练习\programming.txt','a') as file_object:
file_object.write('i love sleeping\n')
file_object.write('i love you\n')
image.png
网友评论