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.检测是否存在文件,没有文件,创建文件,有文件清空文件

  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("脑瓜疼啊脑瓜疼")

  1. w+ 写读

    f = open("day8",mode="w+",encoding="utf-8")

    f.write("你您你你")

    print(f.read())
  2. a+ 追加写读

    f = open("a",mode="a+",encoding="gbk")

    print(f.tell()) # 查看的是字节

    f.seek(0)

    print(f.read(1)) # 字符
  3. 其他操作:

查看光标: 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的更多相关文章

  1. 第九天- 文件操作 r w a 文件复制/修改

    文件操作简介:使用python来读写文件是非常简单的操作.我们使用 open() 函数来打开一个文件,获取到文件句柄.然后通过文件句柄就可以进行各种各样的操作了.根据打开⽅方式的不同能够执行的操作也会 ...

  2. python对文件操作 r w a 文件复制/修改

    文件操作简介: 使用python来读写文件是非常简单的操作.我们使用 open() 函数来打开一个文件,获取到文件句柄.然后 通过文件句柄就可以进行各种各样的操作了.根据打开⽅方式的不同能够执行的操作 ...

  3. 第三章:Python基础の函数和文件操作实战

    本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...

  4. Python--day08(文件操作)

    昨天内容回顾 1.  数据类型转换 1.  数字类型:数字类型之间可以直接  类型()进行直接转换 2.  str与int类型:int() 与str() 之间在某些条件下可以直接转换 int('10' ...

  5. day08(字符编码,字符与字节,文件操作)

    一,复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int: int('10') | int('-10') | int('0') | float(' ...

  6. day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作

    复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...

  7. python学习Day8 三种字符类型、文件操作

    复习 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5') | ...

  8. day 8 - 1 文件操作

    文件操作 注意: 1. r+ 最为常用 2.encoding 的编码格式一定要与文件编码格式一致 读取 r  rb #在本地创建 txt 格式的文件默认使用 gbk 格式 f = open('e:/p ...

  9. day8.python文件操作

    打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...

随机推荐

  1. 7.12T1序列

    1.序列 [问题描述] Hzy 得到了一个字符串,这个字符串只有’A’,’G’,’C’,’T’这四种字符,她发现这个 序列中连续 k 个字符可以形成一种新的字符序列,她称这种序列为 Hzy 序列,她现 ...

  2. CF1208 Red Blue Tree

    题目链接 问题分析 这是蒟蒻第一道3500!不过话说luogu上两个题解的程序都是假的可还行(2019.11.1)-- 为了方便叙述,下面我们约定 : \([c]\) 的值为 \(1\) 当且仅当 \ ...

  3. vue 编译大量空格警告问题总结 warning: Replace `↹↹` with `··`

    1.vue开发中发现最后越来越多的编译警告,如 warning: Replace `↹↹` with `··` (prettier/prettier) at src/views/shebei/shou ...

  4. CF1207A

    CF1207A-There Are Two Types Of Burgers 题意: 出售普通汉堡和鸡肉汉堡,并且两种汉堡所需的原材料价格不同,问最多能卖多少钱. 解法: 对于这道题,我们优先考虑先卖 ...

  5. find命令计算代码行数

    [anonymous@localhost ~/lvs/ipvsadm- -regex '.*Makefile.*' -o -regex '.*\.[ch]' -exec cat {} \; | wc ...

  6. 重写equals为啥需要重写hashCode

    描述 以前一直记得重写equals要把hashCode也要重写了,但是一直也是没有搞明白, 最近在看一些东西,觉得有必要记录一下. 了解一下equals equals是Object类的方法, equa ...

  7. pdnovel 看书 读书 听书

    pdnovel剖度小说是discuz的阅读插件,这里分享一下阅读的一些技巧. 看书 点击或手机输入 http://txt.xlongwei.com 即可进入阅读首页,内容分书book.卷volume. ...

  8. 【零基础】入门51单片机图文教程(Proteus+Keil)

    参考资料: https://www.jianshu.com/p/88dfc09e7403 https://blog.csdn.net/feit2417/article/details/80890218 ...

  9. WebView加载html实现网页上传本地文件(图片,拍照,语音等)

    前言: 这里有两个方案,第一个使用Andorid客户端和JavaScript互相调用方法来实现,这种方法极力不推荐,它会增加服务端和客户端的开发成本. 第二种就是继承WebViewChromeClie ...

  10. ant-design-pro中引入bizcharts报错:BizCharts is not defined 解决

    解决方法: 在config.js 中的 externals 配置项中进行了如下配置修改: externals: { '@antv/data-set': 'DataSet', // bizcharts: ...