读取txt
方法一:
f = open('data.txt','r',encoding='utf-8') # 打开返回文件对象f
data = f.read()
print(data)
f.close() # 关闭文件对象,释放文件占用的系统资源
方法二(推荐):
with open('data.txt','r',encoding='utf-8')as f: #使用with会自动关闭文件
data = f.read()
print(data)
f.closed # 验证文件是否关闭
模型参数解释
r:只能读取
w:只能写入,若存在则覆盖
a:打开并从文件末尾追加内容
r+:打开并进行读写
b:以二进制打开文件,数据以字节形式进行读写,适用于所有不包含文本的文件
读取文件内容
读取时指针会发生变化,若指针已到达末尾,则返回空字符串。比如第二次运行f.read()会返回空字符串。
f.read() #读取所有文本,返回一个字符串
'1,麻省理工学院,美国\n2,斯坦福大学,美国\n3,哈佛大学,美国\n4,加州理工学院,美国\n5,牛津大学,英国'
f.readline() #读取一行文本
['1,麻省理工学院,美国\n', '2,斯坦福大学,美国\n', '3,哈佛大学,美国\n', '4,加州理工学院,美国\n', '5,牛津大学,英国']
f.readlines() #读取所有文本,输出一个列表
'1,麻省理工学院,美国\n'
使用for循环,按行读取
f = open('data.txt','r',encoding='utf-8')
for line in f:
print(line,end='')
1,麻省理工学院,美国
2,斯坦福大学,美国
3,哈佛大学,美国
4,加州理工学院,美国
5,牛津大学,英国
读取并生成列表,换行符可以用replace去掉。
###方法一:
f = open('data.txt','r',encoding='utf-8')
d = []
for line in f:
d.append(line.strip()) #strip()去除字符串两边的空格
print(d)
['1,麻省理工学院,美国', '2,斯坦福大学,美国', '3,哈佛大学,美国', '4,加州理工学院,美国', '5,牛津大学,英国']
###方法二:
f = open('data.txt','r',encoding='utf-8')
for line in f:
data = f.readlines()
print(data)
['2,斯坦福大学,美国\n', '3,哈佛大学,美国\n', '4,加州理工学院,美国\n', '5,牛津大学,英国']
data1 = [i.replace('\n','') for i in data]
print(data1)
['2,斯坦福大学,美国', '3,哈佛大学,美国', '4,加州理工学院,美国', '5,牛津大学,英国']
data2 = [i.replace('\n','').split(',') for i in data] #split()以“,”作为分隔符切分字符串
print(data2)
[['2', '斯坦福大学', '美国'], ['3', '哈佛大学', '美国'], ['4', '加州理工学院', '美国'], ['5', '牛津大学', '英国']]
print(data2[0][1])
斯坦福大学
写入txt
with open('text.txt','w',encoding='utf-8')as f:
f.write('文件读取\n文件写入') #\n换行符
#查看文件内容
with open('text.txt','r',encoding='utf-8')as f:
print(f.read())
文件读取
文件写入
写入其他对象的话,要先将他们转化成字符串
str()