关键词:
with open(‘a.txt‘,mode=‘rt‘) as f1:
res=f1.read()
print(res)
# f1=open(‘a.txt‘,mode=‘rt‘)
with方法可以在执行完子代码后自动关闭文件,节约内存空间。
二、指定字符编码
强调:t和b不能单独使用,必须跟r/w/a连用
?
t文本(默认的模式)
1、读写都以str(unicode)为单位的
2、文本文件
3、必须指定encoding=‘utf-8‘
# 没有指定encoding参数操作系统会使用自己默认的编码
# linux系统默认utf-8
# windows系统默认gbk
?
with open(‘c.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
res=f.read()
# t模式会将f.read()读出的结果解码成unicode
print(res,type(res))
?
三、文件操作模式详解
模式mode | 操作 | 若不存在 | 是否清空 |
---|---|---|---|
r | 只能读不能写 | 报错 | - |
rb | 二进制只读 | 报错 | - |
r+ | 可读可写 | 报错 | 是 |
rb+ | 二进制读写 | 报错 | 是 |
w | 只能写不能读 | 创建文件 | 是 |
wb | 二进制只写 | 创建文件 | 是 |
w+ | 可读可写 | 创建文件 | 是 |
wb+ | 二进制读写 | 创建文件 | 是 |
a | 追加不能读 | 创建文件 | 否,追加写 |
ab | 二进制追加不能读 | 创建文件 | 否,追加写 |
a+ | 可读可写 | 创建文件 | 否,追加写 |
ab+ | 二进制追加可读可写 | 创建文件 | 否,追加写 |
只读模式
下面以文本模式为例
# 1、r(默认的操作模式):只读模式,当文件不存在时报错,当文件存在时文件指针跳到开始位置
with open(‘c.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
res=f.read() # 把所有内容从硬盘读入内存
print(res)
# 一次性读完,若文件较大会比较吃力
案例:使用存在硬盘内的账户信息登录验证
inp_username=input(‘your name>>: ‘).strip()
inp_password=input(‘your password>>: ‘).strip()
?
# 验证
with open(‘user.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
for line in f:
# 程序会循环多次若找到了对应的账号密码会退出,若循环结束了还没找到,则登录失败。
username,password=line.strip().split(‘:‘)
if inp_username == username and inp_password == password:
print(‘login successfull‘)
break
else:
print(‘账号或密码错误‘)
只写模式
当文件不存在时会创建空文件,当文件存在会清空文件,指针位于开始位置
with open(‘d.txt‘,mode=‘wt‘,encoding=‘utf-8‘) as f:
f.read() # 报错,不可读
f.write(‘你好
‘)
# 强调1:
# 在以w模式打开文件没有关闭的情况下,连续写入,新的内容总是跟在旧的之后
with open(‘d.txt‘,mode=‘wt‘,encoding=‘utf-8‘) as f:
f.write(‘你好1
‘)
f.write(‘你好2
‘)
f.write(‘你好3
‘)
?
# 强调2:
# 如果重新以w模式打开文件,则会清空文件内容
with open(‘d.txt‘,mode=‘wt‘,encoding=‘utf-8‘) as f:
f.write(‘你好1
‘)
with open(‘d.txt‘,mode=‘wt‘,encoding=‘utf-8‘) as f:
f.write(‘你好2
‘)
with open(‘d.txt‘,mode=‘wt‘,encoding=‘utf-8‘) as f:
f.write(‘你好3
‘)
案例:w模式用来创建全新的文件
文件文件的copy工具(文本文件)
src_file=input(‘源文件路径>>: ‘).strip()
dst_file=input(‘源文件路径>>: ‘).strip()
with open(r‘‘.format(src_file),mode=‘rt‘,encoding=‘utf-8‘) as f1,
open(r‘‘.format(dst_file),mode=‘wt‘,encoding=‘utf-8‘) as f2:
res=f1.read()
f2.write(res)
# 1.用户分别输入文件1和文件2的路径
# 2.先以只读的方式打开文件1,同时以只写的方式打开文件2,将文件1中的数据读出并赋值给f1,再写# 入到文件2中。
a:只追加写
# 只追加写,在文件不存在时会创建空文档,在文件存在时文件指针会直接调到末尾
with open(‘e.txt‘,mode=‘at‘,encoding=‘utf-8‘) as f:
# f.read() # 报错,不能读
f.write(‘你好1 ‘)
f.write(‘你好2 ‘)
f.write(‘你好3 ‘)
w 模式与 a 模式的异同: 相同点:在打开的文件不关闭的情况下,连续的写入,新写的内容总会跟在前写的内容之后。 不同点:以 a 模式重新打开文件,不会清空原文件内容,会将文件指针直接移动到文件末尾,新写的内容永远写在最后。
案例:a模式用来在原有的文件内存的基础之上写入新的内容,比如记录日志、注册
注册功能
name=input(‘请输入用户名:‘)
pwd=input(‘请输入密码:‘)
with open(‘db.txt‘,mode=‘at‘,encoding=‘utf-8‘) as f:
f.write(‘:
‘.format(name,pwd))
+不能单独使用,必须配合r、w、a
# r+
with open(‘g.txt‘,mode=‘rt+‘,encoding=‘utf-8‘) as f:
# print(f.read())
f.write(‘中国‘)
# w+
with open(‘g.txt‘,mode=‘w+t‘,encoding=‘utf-8‘) as f:
f.write(‘111
‘)
f.write(‘222
‘)
f.write(‘333
‘)
print(‘====>‘,f.read())
# a+
with open(‘g.txt‘,mode=‘a+t‘,encoding=‘utf-8‘) as f:
print(f.read())
?
f.write(‘444
‘)
f.write(‘5555
‘)
print(f.read())
linuxcpio三种操作模式详解!
cpio是一种数据备份与恢复工具,用于创建cpio档案文件,那么Linuxcpio三种操作模式是什么?分别是:copy-out模式、copy-in模式、copy-pass模式,接下来来看看详细的内容介绍。 在Linux中,cpio是一种数据备份与恢复工具,用于创... 查看详情
6.文件操作
文件处理流程模式:常用模式字节模式(二进制操作):可读可写模式:操作文件常用文件操作方法seek详解:with————上下文管理器文件处理流程打开文件open()f=open(filename,mode=‘‘)操作文件关闭文件close()模式:常用模式以... 查看详情
linux之vim详解
...编辑工具的一、vim的三种模式1、命令模式:使用Vim编辑文件时,默认处于命令模式。在此模式下,可以使用上、下、左、右键或者k、j、h、l命令进行光标移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。2、输入模... 查看详情
linuxio模式及selectpollepoll详解
...于内核态的程序可以访问用户空间和内核空间。 2、文件描述符fd Linux将所有设备都当做文件来处理,文件描述符来标识每个文件对象。 查看详情
redis的主从复制哨兵模式以及群集模式(相关概念及实验详解)(代码片段)
...4.搭建Redis主从复制①环境准备②安装Redis③修改Redis配置文件(Master节点操作)④修改Redis配置文件(Slave节点操作)⑤验证主从效果⑥在Master节点上验证Slave节点二.Redis哨兵模式1.哨兵模式原理2.哨兵模式的作用3.哨兵模式的结构4.搭建R... 查看详情
linux操作系统vim编辑器和管道与重定向命令以及u盘备份文件学习详解(代码片段)
...的一种终端设备,是由Teletype公司生产的。设备名放在特殊文件目录/dev/下。二.vim编辑器基本上vi/vim共分为三种模式,分别是命令模式(Commandmode),输入模式(Insertmode)和底线命令模式(Lastlinemode) 查看详情
sed命令详解
SED常用功能处理文本文件分析日志文件修改配置文件SED处理流程文本或管道输入—-读入一行到模式空间(临时缓冲区)—-sed命令处理—–输出到屏幕—-读入一行到模式空间—–循环SED原则sed一次处理一行内容sed不改变文件内容(除... 查看详情
hdfs功能详解介绍(2)
...式安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求。在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态,当整... 查看详情
搞懂redis持久化,rdb模式aof模式工作原理详解及操作(代码片段)
...灾难恢复.可以看作快照,也可以理解为MysqlDumpAOF则是写入操作的日志,可以当作MySQLBi 查看详情
vi指令详解
...模式: 在我们刚刚通过vi新建或打开一个已经存在的文件时,首先默认被读取的模式就是“命令模式”,命令模式的特征就是,在编辑器窗口左下角的位置上没有任何的提示标语。 在这个模式下,如果不通过相应的... 查看详情
3.文件操作及编码解码补充
文件操作:1.打开文件f=open(name,mode)name:文件名的字符串mode:访问模式(只读,写入,追加等)2.读写等操作date=f.read()3.关闭文件f.close()模式详解:如果省略书写访问模式,则访问模式默认为r或rb.通常只用主模式读写文件r以只读方式打开文... 查看详情
linux上的rsync命令详解
...作.rsync工具包被用来从一个位置到另一个位置高效地同步文件和文件夹.rsync可以实现在同一台机器的不同文件直接备份,也可以跨服务器备份.rsync语法如下从语法结构我们可以看出,源和目标即可以在本地也可以在远端.如果是远端... 查看详情
1-qt-文件操作
Qt文本文件的读写操作Qt文件操作详解(创建、写入、删除、INI、XML文件等二进制文件的读写文件可以使用QFile类、QStream文本文件的读写建议使用QTextStream类,它操作文件更加方便。打开文件时,需要参数指定打开文件的模式:&nb... 查看详情
linux操作命令分类详解-进程查找其他(代码片段)
...章1、su、sudo1.1sudo使用步骤1.2常用参数搭配1.3实例2、上传文件工具命令3、系统进程命令3.1ps显示当前进程的状态3.2kill 删除执行中的程序或工作4、查找命令4.1find查找命令4.2locate快速查找命令4.3whereis查找文件命令4.4which环境变量... 查看详情
postgresql学习总结——postgresql模式(schema)详解(代码片段)
...集合。一个模式可以包含视图、索引、数据类型、函数和操作符等。相同的对象名称可以被用于不同的模式中而不会出现冲突,例如schema1和myschema都可以包含名为mytable的表。模式类似于操作系统层的目录,但是模式不能... 查看详情
postgresql学习总结——postgresql模式(schema)详解(代码片段)
...集合。一个模式可以包含视图、索引、数据类型、函数和操作符等。相同的对象名称可以被用于不同的模式中而不会出现冲突,例如schema1和myschema都可以包含名为mytable的表。模式类似于操作系统层的目录,但是模式不能... 查看详情
linuxsed命令详解(代码片段)
...的内容送到屏幕。接着处理下一行,这样不断重复,知道文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用自动编辑一个或者多个文件;简化对文件的反复操作;编写转换程序等。s 查看详情
文件操作详解(代码片段)
文件介绍:文件主要是存储在磁盘(外存)上而在程序里,文件一般和外存相联系,因为直接操作外存不像操作内存那样方便,需通过“文件”方式来进行外存的操作~如图:由于磁盘上文件很多,需通过文件... 查看详情