前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python操作读写txt文件

Python操作读写txt文件

作者头像
王大力测试进阶之路
发布2020-01-17 17:27:11
2K0
发布2020-01-17 17:27:11
举报
文章被收录于专栏:橙子探索测试橙子探索测试

比较常用的文件读写选项:

r+读写模式

w+写读模式

a追加写模式

a+追加读模式,因为文件值在最后,所以需要先seek(0)到文件开头,然后再读

‘r’以读的方式打开,只能读文件,若文件不存在,则发生异常;

‘w’以写的方式打开,只能写文件,如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件;

‘rb’以二进制方式打开,只能读文件,如果文件不存在,会发生异常;

‘wb’以二进制方式打开,只能写文件,如果文件不存在,创建改文件;如果文件已存在,先清空,再打开文件;

‘rt’以文本读方式打开,只能读文件,如果文件不存在,则发生异常;

‘wt’以文本写方式打开,只能写文件,如果文件不存在,创建该文件,如果文件已存在,先清空,再打开文件;

‘rb+’以二进制读方式打开,可以读、写文件,如果文件不存在,会发生异常;

‘wb+’以二进制写方式打开,可以读、写文件,如果文件不存在,创建该文件;如果文件存在,先清空,在创建文件;

写入txt文件

with open('文件路径','w') as f:

f.write('写入内容必须是字符串') #自带文件关闭功能

1、实参‘w’告诉python以写入模式打开文件。打开文件时,可以指定读取方式('r':读取 'w':写入 ‘a’ 附加 'r+' 读取和写入 )默认为只读模式。

2、若写入的文件不存在,函数open()将自动创建。

3、以w写入模式打开文件时,每次写入都会清空之前内容,写入新的内容

4、以a追加模式打开文件时,每次写入不会清空之前内容,会从末尾继续追加内容

5、写入必须是字符串格式,如果不是字符串,写入前需转为字符串格式

6、函数write不会在写入文本末尾自动换行,如果要换行,需添加换行符

7、写入中文encoding='utf-8',with open('1.txt','w',encoding='utf-8') as f:

代码语言:javascript
复制
#以写入模式写入多行并内容换行显示:
with open('1.txt','w') as f:
    f.write('["ython","c++","java"]\n')
    f.write('(a,b,c)\n')
    f.write('{"username":"wangli","password":123456}\n')
    f.write('I love English too!')
 
 
txt内显示如下:
["ython","c++","java"]
(a,b,c)
{"username":"wangli","password":123456}
I love English too!
 
 
 
#以追加模式写入多行并内容换行显示:
with open('1.txt','a') as f:
    f.write('["ython","c++","java"]\n')
    f.write('(a,b,c)\n')
    f.write('{"username":"wangli","password":123456}\n')
    f.write('I love English too!\n')
 
txt内显示如下:
["ython","c++","java"]
(a,b,c)
{"username":"wangli","password":123456}
I love English too!["ython","c++","java"]
(a,b,c)
{"username":"wangli","password":123456}
I love English too!
 
 
#writelines以写入模式写入列表类:
 
data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
with open("1.txt","w") as f:                                                   
    for i in data:                                                                
        f.writelines(i)
 
txt内显示如下:
abcabcabc
 

读取txt文件

1、读取出来是字符串格式

2、若读取的文件不存在,会报错。

3、读取文件后,文件值会在最末尾,如果想再读取,需要seek(0)到文件最开始

read()一次性读全部内容

一次性读取文本全部内容,以字符串的形式返回结果

代码语言:javascript
复制
txt内容:
["ython","c++","java"]
(a,b,c)
{"username":"wangli","password":123456}
I love English too!
 
 
 
 
#read()读取全部内容
with open('1.txt','r') as f:
    print(f.read(),type(f.read()))
 
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
["ython","c++","java"]
(a,b,c)
{"username":"wangli","password":123456}
I love English too! <class 'str'>
 
Process finished with exit code 0

readline()读取第一行内容

只读取文本第一行的内容,以字符串的形式返回结果

代码语言:javascript
复制
txt内容:
["ython","c++","java"]
(a,b,c)
{"username":"wangli","password":123456}
I love English too!
 
 
#readline()读取一行
with open('1.txt','r') as f:
    print(f.readline(),type(f.readline()))
 
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
["ython","c++","java"]
 <class 'str'>
 
Process finished with exit code 0
 
 
 
 
#readline()循环读取每行,避免读取文件太大
with open('1.txt','r') as f:
    for i in f:
        print(i,type(i))
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
["Python","c++","java"]
 <class 'str'>
(a,b,c)
 <class 'str'>
{"username":"wangli","password":123456}
 <class 'str'>
I love English too! <class 'str'>
 
Process finished with exit code 0

readlines()列表

读取文本所有内容,并且以数列的格式返回结果,一般配合for in使用

代码语言:javascript
复制
txt内容:
["ython","c++","java"]
(a,b,c)
{"username":"wangli","password":123456}
I love English too!
 
 
#readlines()读取全部放到list里面
with open('1.txt','r') as f:
    print(f.readlines(),type(f.readlines()))
 
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
['["ython","c++","java"]\n', '(a,b,c)\n', '{"username":"wangli","password":123456}\n', 'I love English too!'] <class 'list'>
 
Process finished with exit code 0

split() 方法语法:

str.split(str="", num=string.count(str)).

str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

num -- 分割次数。默认为 -1, 即分隔所有。

代码语言:javascript
复制
txt内容:
 
["Python","c++","java"]
(a,b,c)
{"username":"wangli","password":123456}
I love English too!
 
 
with open('1.txt','r') as f:
    print(f.read().split('\n'))
 
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
['["Python","c++","java"]', '(a,b,c)', '{"username":"wangli","password":123456}', 'I love English too!']
 
Process finished with exit code 0
 
 
with open('1.txt','r') as f:
    print(f.read().split('\n'))
 
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
['["Python","c++","java"]', '(a,b,c)', '{"username":"wangli","password":123456}', 'I', 'love', 'English', 'too!']
 
Process finished with exit code 0
 

strip()方法语法:

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

str.strip([chars]);

chars -- 移除字符串头尾指定的字符序列。

代码语言:javascript
复制
txt内容:
 
,["Python","c++","java"], (a,b,c), {"username":"wangli","password":123456}, I love English too ,
 
 
with open('1.txt','r') as f:
    print(f.read().strip(','))
 
 
 
"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
["Python","c++","java"], (a,b,c), {"username":"wangli","password":123456}, I love English too 
 
Process finished with exit code 0
 
 
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 橙子探索测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 读取txt文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档