文件操作:w,w+,r,r+,a,wb,rb
1.文件操作是什么?
操作文件:
f = open("文件路径",mode="模式",encoding="编码")
open() # 调用操作系统打开文件
mode # 对文件的操作方式
encoding # 文件的编码 -- 存储编码要统一
# win -- gbk
# linux -- utf-8
# mac -- utf-8 最常用的就是utf-8
f 文件句柄 -- 操作文件的相当于锅把
读 r 写: w清空写 ,a追加写 读 rb 写 wb ab
2.读
r rb r+ r+b
r
文件全部读取完后以后,再次读取就没有内容
f = open("a",mode="r",encoding="gbk")
content = f.read() # 全部读取
c1 = f.read(3) # 按字符个数读取
print(f.readline(3)) # 读取一行内容中多个字符
print(f.readlines()) # 一行一行读取,存储到列表中 获取到的内容里显示\n,\n是换行
f = open("a",mode="r",encoding="gbk")
print(f.read())
路径
F:\a\111.txt 绝对路径 从磁盘的根处查找
相对路径 相对于当前文件进行查找的
查看当前工作路径
import os
print(os.getcwd()) #
print(repr("F:\a\文件初识.txt"))
print("F:\a\文件初识.txt")
一行一行读取 -- 防止内存溢出
for i in f: # 迭代读取print(i)
3.写
写 w 清空写 a 追加写
w 分为两步
1.检测是否存在文件,没有文件,创建文件,有文件清空文件
- 在写入
f = open("day8",mode="w",encoding="utf-8") #打开
f.write("123") # 写
f.close() # 关闭文件
操作文件:1.打开文件 2.操作文件 3.关闭文件
f = open("a",mode="r",encoding="gbk")
print(f.read())
f.close() # 关闭文件后就不能继续读取了
f = open("a",mode="a",encoding="gbk")
f.write("啊啊啊,好困啊")
文件末尾添加
4.读写非文本文件
f = open("1.jpg",mode="rb")
rb ,wb,ab 不能指定编码
print(f.read()) # read() 全部读取
print(f.read(3)) # 字节
import requests 爬取
ret = requests.get("http://www.521609.com/uploads/allimg/151124/1-1511241G251317.png")
f = open("2.jpg",mode="wb")
f.write(ret.content)
f.close()
5.文件的+模式
r 读 r+ 读写
w 写 w+ 写读
a 写 a+ 写读
错误示范
f = open("day8",mode="r+",encoding="utf-8")
f.write("你好啊") #文件此时会被改写
print(f.read()) #读到的内容是修改后的
正确示范 -- 后期开发中使用频率比较低
f = open("day8",mode="r+",encoding="utf-8")
print(f.read())
f.write("脑瓜疼啊脑瓜疼")
- w+ 写读
f = open("day8",mode="w+",encoding="utf-8")
f.write("你您你你")
print(f.read()) - a+ 追加写读
f = open("a",mode="a+",encoding="gbk")
print(f.tell()) # 查看的是字节
f.seek(0)
print(f.read(1)) # 字符 - 其他操作:
查看光标: tell() 返回值 返回的就是当前光标的位置
移动光标:
seek(0,0) 文件开始位置
seek(0,1) 光标的当前位置
seek(0,2) 文件末尾位置
seek(3) 按照字节调节 使用utf-8是3 gbk是2
6.另一种文件打开方式
f = open("day8",mode="r",encoding="utf-8")
f.read()
with open("day8",mode="r",encoding="utf-8") as f: # 面向对象中上下文管理
print(f.read())
with open 帮助自动关闭文件
with open 同时操作多个文件
with open("day8",mode="r",encoding="utf-8") as f,
open("a",mode="w",encoding="gbk") as f1:
print(f.read())
f1.write("真饿!")
7.文件的修改
with open("day8",mode="r+",encoding="utf-8")as f:
content = f.read() #赋值
content = content.replace("您","你") #替换
f.seek(0,0) #移动光标到文首
f.write(content) #写入内容
with open("day8",mode="r",encoding="utf-8")as f,\
open("new_day8",mode="a",encoding="utf-8")as f1:
for i in f:
content = i.replace("你","我")
f1.write(content)
# import os 创建备份文件
# os.remove("day8") # 原数据可以使用rename来做备份
# os.rename("new_day8","day8")
# 1.文件初识
# open() # 打开文件
# open("文件的路径")
# open(mode="对文件的操作方式")
# open(encoding="utf-8")
# 编码:win -gbk linux - utf-8 mac -- utf-8
# f = open() #文件句柄
# 读文本
# r 模式
# read() # 全部读取
# read(3) # 通过字符来读取
# readline() # 读取一行
# readlines() # 一行一行的读取存放的列表中
# 写文本
# w 清空写, a 追加写
# w操作:
# 1.先判断有没有文件存在,文件存在清空文件,文件不存在创建文件
# 2.写入内容
# a操作:
# 在文件的末尾添加
# 读非文本
# rb 不能指定编码
# 写非文本
# wb ab 不能指定编码
# +操作:
# r+ 读写
# 1.先读,再写
# w+ 写读
# 2.先写后读
# a+ 追加写读
# 3. 先写后读
# 其他操作:
# tell() 查看光标 -- 返回光标的当前位置(字节)
# seek 移动光标
# seek(0,0) # 移动光标到文件开始位置
# seek(0,1) # 光标的当前位置
# seek(0,2) # 移动光标到文件的末尾位置
# seek(3) # 按照字节移动
# 另一个打开方式:
# with open("文件路径",mode="操作文件的方式",encoding="编码") as f:
# 上下文管理
# 1.可以自动帮助咱们关闭文件
# 2.可以同时打开多个文件
# 修改文件:
# with open("原文件")as f,open("新文件")as f1:
# f.for循环的读取
# f1.for循环的写入
# import os
# os.rename("原文件名字",备份名字") # 对原文件进行备份
# os.rename("新文件名字","原文件名字") # 把新文件改成原文件的名字
文件操作:w,w+,r,r+,a,wb,rb的更多相关文章
- 第九天- 文件操作 r w a 文件复制/修改
文件操作简介:使用python来读写文件是非常简单的操作.我们使用 open() 函数来打开一个文件,获取到文件句柄.然后通过文件句柄就可以进行各种各样的操作了.根据打开⽅方式的不同能够执行的操作也会 ...
- python对文件操作 r w a 文件复制/修改
文件操作简介: 使用python来读写文件是非常简单的操作.我们使用 open() 函数来打开一个文件,获取到文件句柄.然后 通过文件句柄就可以进行各种各样的操作了.根据打开⽅方式的不同能够执行的操作 ...
- 第三章:Python基础の函数和文件操作实战
本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...
- Python--day08(文件操作)
昨天内容回顾 1. 数据类型转换 1. 数字类型:数字类型之间可以直接 类型()进行直接转换 2. str与int类型:int() 与str() 之间在某些条件下可以直接转换 int('10' ...
- day08(字符编码,字符与字节,文件操作)
一,复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int: int('10') | int('-10') | int('0') | float(' ...
- day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作
复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...
- python学习Day8 三种字符类型、文件操作
复习 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5') | ...
- day 8 - 1 文件操作
文件操作 注意: 1. r+ 最为常用 2.encoding 的编码格式一定要与文件编码格式一致 读取 r rb #在本地创建 txt 格式的文件默认使用 gbk 格式 f = open('e:/p ...
- day8.python文件操作
打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...
随机推荐
- 【MAC工具】手机抓包工具之 —— whistle
本文链接:https://blog.csdn.net/weixin_42534940/article/details/88783455安装参考: https://github.com/avwo/whi ...
- Palindrome Degree(CodeForces 7D)—— hash求回文
学了kmp之后又学了hash来搞字符串.这东西很巧妙,且听娓娓道来. 这题的题意是:一个字符串如果是回文的,那么k值加1,如果前一半的串也是回文,k值再加1,以此类推,算出其k值.打个比方abaaba ...
- 国产手机的谷X服务
我换了个新手机,但面临了一个棘手的问题,就是原来的手机的谷X服务是用免root安装器自动安装好的,安装器找不到了.而后我发现现在的手机并没有阉割掉谷X服务,原因不详,好处不用在去一个个安装了.我装好y ...
- C++ #include<algorithm>
今天下午大致学完了进阶指南中algorithm头文件下的内容,在这里进行一个总结. reverse翻转 顾名思义,reverse进行的操作就是翻转原来的顺序,理解非常简单,故不赘述. 操作样例 ...
- shell之列表的定义与循环
字符串列表定义方法1: a=(f1 f2 f3 f4)for i in ${a[*]}#遍历每一个列表值 for i in ${a[@]}#等价与上一句 实例: #!bin/basha=(f1 f2 ...
- phpinfo中敏感信息记录
比赛中或者渗透中如果遇到phpinfo,从里面发现的一些线索能够对后续的渗透和解题帮助很大,这里记录总结一下目前网上比较常用的的. 下图来源于:https://seaii-blog.com/index ...
- Linux设备驱动程序 之 信号量和互斥体
概念 一个信号量本质是一个整数值,它和一堆函数联合使用,这一对函数通常称为P和V:希望进入临界区的进程将在相关信号量上调用P:如果信号量的值大于零,则该值会减少1,进程可以继续执行:相反,如果信号量的 ...
- Nginx之HTTP过滤模块
1. HTTP 过滤模块 ngx_http_not_modified_module 仅对 HTTP 头部做处理.在返回 200 成功时,根据请求中 If-Modified-Since 或者 If-Un ...
- LeetCode 128. 最长连续序列(Longest Consecutive Sequence)
题目描述 给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1 ...
- rocketmq备忘
rocketmq unrecognized VM option 'MetaspaceSize=128m' => jdk1.8 JAVA_HOME https://blog.csdn.net/c3 ...