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 0with 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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】PyCryptodome模块实现多种加密算法

PyCryptodome是python一个强大的加密算法库&#xff0c;可以实现常见的单向加密、对称加密、非对称加密、非对称加密算法签名和流加密算法。 直接pip安装即可&#xff1a;pip install pycryptodome 官网地址&#xff1a;https://pypi.org/project/pycryptodome/ 一、base64编码…

阿里云 Ubuntu上的mysql运行sql文件来创建表

1、上传sql文件到指定目录 2、登录数据库 mysql -u root -p 3、查看数据库 show databases; 4、创建数据库 create database wlh; 5、对新创建的数据库操作 use wlh; 6、导入sql文件 7、查看数据库中表格 若有你数据库中的表格则导入成功 8、退出数据库操作 或者用quit; …

linux Ubuntu安装ftp并将本地文件上传到云服务器

确认是否已经安装ftp pgrep vsftpd无结果如下图&#xff1a; 2、执行安装 3、查看ftp是否安装成功 systemctl status vsftpd.service 4、 &#xff08;1&#xff09;新建"/home/uftp"目录作为用户主目录 打开"终端窗口"&#xff0c;输入"sudo mkd…

【Python】PyCryptodome模块中5种AES加密模式介绍

分组密码有五种工作体制&#xff1a; 1.电码本模式&#xff08;Electronic Codebook Book (ECB)&#xff09;&#xff1b; 2.密码分组链接模式&#xff08;Cipher Block Chaining (CBC)&#xff09;&#xff1b; 3.计算器模式&#xff08;Counter (CTR)&#xff09;&#xff1b…

Pyhton随机生成测试数据模块faker

1.什么是Faker Faker是一个Python包&#xff0c;开源的GITHUB项目&#xff0c;主要用来创建伪数据&#xff0c;使用Faker包&#xff0c;无需再手动生成或者手写随机数来生成数据&#xff0c;只需要调用Faker提供的方法&#xff0c;即可完成数据的生成。 2.安装Faker pip insta…

linux常见操作命令

1、创建文件夹test &#xff1a; mkdir test 注&#xff1a;批量创建为mkdir -p file1/log 在此目录下创建file1/log 2、创建文件test touch test 3、删除文件test rm -f test 4、删除文件夹test(包括文件夹汇总的文件也会一起删除) rm -rf test 注&#xff1a;一般用…

营业执照、组织机构代码、统一社会信用代码

统一社会信用代码是营业执照注册号。这个是三证合一,一证一码的工商改革结果。 三证合一&#xff1a;是指营业执照,税务登记证,组织机构代码证合并为一张三证合一的营业执照。 一证一码&#xff1a;是将营业执照注册号,税号,组织机构代码证号合并为统一社会信用代码。 统一社会…

【探索篇】测试人员一直疏忽掉的测试用例点,你中枪了吗?

记得当初上测试课程时&#xff0c;老师就讲到头脑风暴&#xff0c;让我们尽情发挥:想象&#xff0c;讲的就是不局限思维、发散、开拓思维&#xff0c;可能发生的情况都可作为输入条件&#xff0c;实际我们运用到工作中&#xff0c;测试用例的设计是一样的道理&#xff0c;不能局…

阿里云root密码修改

一、root密码修改阿里云linux服务器修改root密码流程&#xff1a; 通过Xshell客户端输入账号root&#xff0c;输入密码&#xff0c;登陆到linux。 输入修改密码的命令 passwd 根据提示输入新密码&#xff0c;输入新密码的时候&#xff0c;软件不会显示*号&#xff0c;输入后…

【Android】Windows环境安装Android Studio教程

Android Studio 是谷歌推出的一个Android集成开发工具&#xff0c;基于IntelliJ IDEA. 类似 Eclipse ADT&#xff0c;Android Studio 提供了集成的 Android 开发工具用于开发和调试。 在IDEA的基础上&#xff0c;Android Studio提供&#xff1a; 基于Gradle的构建支持 Android…

数据库的显示、创建、使用 、用户授权管理及忘记root用户后重置密码

1、显示数据库 show databases; 默认的数据库及大致功能&#xff1a; mysql -- 用户权限 相关数据 test --用于用户测试数据 information_schema -MySQL 本身架构相关的数据 2、创建数据库 create database 数据库名称 default charset utf8 collate utf8_general_ci ; 3、…

【Android】Android Studio打包生成正式签名的APK

Android Studio是谷歌推出一个Android集成开发工具&#xff0c;基于IntelliJ IDEA。它类似于Eclipse ADT&#xff0c;Android Studio 提供了集成的Android开发工具用于开发和调试。 那么今天我们就来讲讲如何通过Android Studio打包APK文件&#xff0c;相信有很多人还不是非常了…

Python实现单例

单例模式&#xff08;Singleton Pattern&#xff09;是一种常用的软件设计模式&#xff0c;该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中&#xff0c;某个类只能出现一个实例时&#xff0c;单例对象就能派上用场。 我们在使用class创建类的时候, 只…

mysql添加用户及权限

一、增加权限 mysql> grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名用户地址 identified by 连接口令; mysql>flush privileges; (刷新系统权限表) 权限1,权限2,...权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,rel…

Python unittest中初始化固件setUp和销毁固件tearDown详解

unittest.TestCase 包含了 setUp() 和 tearDown() 两个方法&#xff0c;其中 setUp() 方法用于初始化测试固件&#xff1b;而 tearDown() 方法用于销毁测试固件。程序会在运行每个测试用例&#xff08;以 test_ 开头的方法&#xff09;之前自动执行 setUp() 方法来初始化测试固…

【Android】Android Studio中新创建的app目录结构

安装Android Studio后&#xff0c;然后创建一个app项目。对于初学者来说&#xff0c;我们希望了解app目录结构&#xff0c;然后更好的进行开发工作。 但是要想了解一个app的目录结构&#xff0c;首先需要明确两个概念 Project Name:工程项目名称 Application Name:当前app发布…

mysql添加用户权限报1064 - You have an error in your SQL syntax问题解决

mysql添加用户及权限报错&#xff1a; 出现这样错的原因有两个&#xff1a; 1、语法有问题 &#xff08;这里没有问题&#xff09; 2、mysql版本是否支持 此种写法 找到一位大神说&#xff1a;你检查下mysql版本是mysql server 8.不支持同时创建用户和授予权限&#xf…

Python Pytest前置setup和后置teardown详解

pytest用例运行级别&#xff1a; ●模块级&#xff08;setup_module/teardown_module&#xff09;开始于模块始末&#xff0c;全局的 ●函数级&#xff08;setup_function/teardown_function&#xff09;只对函数用例生效 ●类级&#xff08;setup_class/teardown_class&#x…

【Python】pandas模块操作大型数据集

pandas 是基于NumPy 的一种工具&#xff0c;该工具是为了解决数据分析任务而创建的。 Pandas 纳入了大量库和一些标准的数据模型&#xff0c;提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。 Pandas是python的一个数据分析包…

djangohttp://127.0.0.1:8000/media/test.jpg直接显示图片media配置

文件目录如下&#xff1a; 1、在settings中加入&#xff1a; STATIC_URL /static/ STATICFILES_DIRS (os.path.join(BASE_DIR,static),) #MEDIA_DIR &#xff08;主要用于获取路径&#xff09; MEDIA_DIR os.path.join(BASE_DIR,media) # 需要加入的MEDIA_DIR路径变量 #ME…