Python操作读写txt文件

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

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:

#以写入模式写入多行并内容换行显示:
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()一次性读全部内容

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

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()读取第一行内容

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

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使用

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, 即分隔所有。

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 -- 移除字符串头尾指定的字符序列。

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


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王大力测试进阶之路

打赏博主喝瓶水吧!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值