@字符编码
见:https://zhuanlan.zhihu.com/p/108805502
一.文件基本操作
'''
1、什么是文件
    文件是操作系统提供给用户或者应用程序的一种操作硬盘的机制/功能
 
2、为何要用文件
    应用程序-----------》遥控器
    操作系统-----------》文件
    计算机硬件----------》硬盘
 
3、如何用文件
    文件操作的基本流程:
        1、应用程序打开文件,拿到一个文件对象/文件句柄
        2、调用文件句柄下的读、写操作
        3、关闭文件,回收操作系统资源
 
 '''
 
一. 文件操作的基本流程
# f = open('D:/python17期/day08/代码/aaa/a.txt',mode='rt',encoding="utf-8")  # windows默认:gbk
# # print(f)
# res = f.read()
# print(res)
#
# f.close()
# # print(f)
# # f.read()
#
# del f
 
二. 上下文管理(with)
# with open('aaa/a.txt',mode='rt',encoding="utf-8") as f,\
#         open(...) as f1,\
#         open(...) as f2:
#     f.read()
#     f1.read()
#     f2.read()
 
# with open('aaa/a.txt',mode='rt',encoding="utf-8") as f:
#     print(f.read())
 
三.文件的mode:
(1).控制文件读写操作的模式
#     r(默认的)
#     w
#     a
(2).控制文件读写内容的模式
#     t(默认的):无论读写都是以字符串为单位的,必须要指定encoding参数--->只能用于文件文件的处理
#     b:无论读写都是以二进制位(bytes类型)单位的,一定不能指定encoding参数---》可以用于所有文件的处理
 
1、r:只读模式,文件不存在则报错,文件存在文件指针则跳到文件开头
# with open('aaa/a.txt',mode='rt',encoding="utf-8") as f:
#     print(f.read())
 
2、w:只写模式,文件不存在则创建空文档文件指针处于文件开头,文件存在则清空文件指针处于文件开头
# with open('aaa/a.txt',mode='wt',encoding="utf-8") as f:
#     # f.write("你好\n")
#     # f.write("哈哈哈\n")
#     # f.write("我真帅\n")
#     f.write("。。。。")
 
 
3、a:只追加写模式,文件不存在则创建空文档文件指针处于文件末尾,文件存在则指针处于文件末尾
# with open('aaa/a.txt',mode='at',encoding="utf-8") as f:
#     f.write("你好1\n")
#     f.write("你好2\n")
#     f.write("你好3\n")
 四.了解

# r+ w+ a+ :可读可写
#在平时工作中,我们只单纯使用r/w/a,要么只读,要么只写,一般不用可读可写的模式
二.文件处理高级操作
(一).文件处理的方法
1.读操作
f.read()  # 读取所有内容,执行完该操作后,文件指针会移动到文件末尾
f.readline() # 读取一行内容,光标移动到第二行首部
f.readlines() # 读取每一行内容,存放于列表中
注:# f.read()与f.readlines()都是将内容一次性读入内容,如果内容过大会导致内存溢出

2.
写操作
f.write('1111\n222\n')  # 针对文本模式的写,需要自己写换行符
f.write('1111\n222\n'.encode('utf-8')) # 针对b模式的写,需要自己写换行符
f.writelines(['333\n','444\n']) # 文件模式
f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式

 3.其它

f.readable()  # 文件是否可读
f.writable() # 文件是否可读
f.closed # 文件是否关闭
f.encoding # 如果文件打开模式为b,则没有该属性
f.flush() # 立刻将文件内容从内存刷到硬盘
(二).控制文件指针移动
# 控制文件内指针移动的单位: 只有t模式下的read(n)代表的是字符个数,除此之外全都是字节个数
#之前文件内指针的移动都是由读/写操作而被动触发的,若想读取文件某一特定位置的数据,则则需要用f.seek方法主动控制文件内指针的移动,详细用法如下:
# f.seek(指针移动的字节数,模式控制):
模式控制:
# 0: 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的
# 1: 该模式代表指针移动的字节数是以当前所在的位置为参照的
# 2: 该模式代表指针移动的字节数是以文件末尾的位置为参照的
# 强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用
(三).文件修改的两种方式
一,
1.将文件内容一次性全部读入内存
2.在内存中将内容修改
3.将修改后的内容写回源文件
'''
# with open('log.txt',mode='rt',encoding='utf-8') as f:
# data = f.read()
# res = data.replace('日志','log')
#
# with open('log.txt',mode='wt',encoding='utf-8') as f:
# f.write(res)

'''
二.
1.以读的方式打开源文件,在以写的方式打开一个临时文件
2.从源文件中读出一行内容存入内存中,修改完之后再存入临时文件
3.删除源文件,将临时文件改名为源文件名
'''
# import os
# with open('log.txt',mode='rt',encoding='utf-8') as str_f,\
# open('.log.txt.swp',mode='wt',encoding='utf-8') as dst_f:
# for line in str_f:
# dst_f.write(line.replace('log','日志'))
#
# os.remove('log.txt')
# os.rename('.log.txt.swp','log.txt')
 
 
 

day7.文件处理的更多相关文章

  1. python全栈开发-Day7 文件处理

    python全栈开发-Day7   文件处理 一 .文件操作 一 .介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必 ...

  2. 总结day7 ---- 文件操作,读,写,追加,以及相关方法

    内容大纲 一:文件的基本操作, >常见问题 >encoding >绝对路径和相对路径的 二:文件的读写追加相关操作 >读(r, r+ ,rb,r+b) >写(w,w+,w ...

  3. python基础知识-day7(文件操作)

    1.文件IO操作: 1)操作文件使用的函数是open() 2)操作文件的模式: a.r:读取文件 b.w:往文件里边写内容(先删除文件里边已有的内容) c.a:是追加(在文件基础上写入新的内容) d. ...

  4. Django基础,Day7 - 添加静态文件 static files

    添加css样式文件 1.首先在app目录下创建static文件夹,如polls/static.django会自动找到放在这里的静态文件. AppDirectoriesFinder which look ...

  5. Python编程Day7——字符编码、字符与字节、文件操作

    一.字符编码 重点 ***** 1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表2. 常用的编码表:ascii.unicode.GBK.Shift_JIS.Euc- ...

  6. Linux:Day7(下) 磁盘管理、文件系统管理

    Linux入门 Linux系统管理: 磁盘管理.文件系统管理 RAID基本原理.LVM2 网络管理:TCP/IP协议.Linux网络属性配置 程序包管理:rpm,yum 进程管理:htop,glanc ...

  7. Linux:Day7(上) find、文件特殊权限、if语句

    文件查找: 在文件系统上查找符合条件的文件: 文件查找工具:locate,find locate:非实时查找(数据库查找) find:实时查找: locate: 依赖于事先 构建的索引:索引的构建是在 ...

  8. DAY7 字符编码和文件操作

    一.软件与python解释器打开文件的方法 1.软件打开文件读取数据的流程: 1. 打开软件 2. 往计算机发生一个打开文件的指令,来打开文件 3. 读取数据渲染给用户(存取编码不一致:乱码) 2.p ...

  9. day7 七、字符编码,字符字节与文件操作

    一.字符编码 1.定义:人类能识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的信息交流,一定需要一个媒介,进行两种标识符的转化(两种标识符的对应关系) 对应关系形成的结构 ...

随机推荐

  1. 解决windwos系统80端口被暂用无法发布(NGINX、TOMCAT、IIS)

    原因: 一个操作系统有0-65535个端口,但是一个端口只能被一个应用程序使用.所以80端口只有一个,当开发发布时想用应用NGINX,TOMCAT,IIS发布时,如果有程序占用了,就无法使用了. 解决 ...

  2. css中a元素放长英文字母或者数字自动换行的解决

    在做链接分享页面的时候遇到a元素中的下载链接长英文溢出不换行的问题 在给他以及他父元素设置宽度依然没有解决这个问题 最后解决办法给元素加上word-wrap:break-word 解释:使用break ...

  3. 微信小程序:事件绑定

    小程序中绑定事件,通过bind关键字来实现.如bindinput,bindtap(绑定点击事件),bindchange等. 什么是事件 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑 ...

  4. BSOJ 1562 【堆练习】丑数3576

    Description 丑数是指素因子都在集合{2,3,5,7}内的整数,第一个丑数是1. 现在输入n(n<=4000),输出第n个丑数. Input 输入文件仅一行为一个整数n. Output ...

  5. 你们一般都是怎么进行SQL调优的?MySQL在执行时是如何选择索引的?

    前言 过年回来的第二周了,终于有时间继续总结知识了.这次来看一下SQL调优的知识,这类问题基本上面试的时候都会被问到,无论你的岗位是后端,运维,测试等等. 像本文标题中的两个问题,就是我在实际面试过程 ...

  6. 后端程序员之路 45、nginx CORS 跨域

    在提供api给其它应用使用时,有时我们会要限制它的跨域使用,而有时,我们又要用CORS来打破AJAX只能同源使用的限制 跨域资源共享 CORS 详解 - 阮一峰的网络日志http://www.ruan ...

  7. Python3+pygame实现的90坦克大战 代码完整 有演示效果

    我是一个典型的80后,年轻时玩过了特别多的游戏,所以这几天用Python3+pygame实现了一个另外小游戏"坦克大战"(其他的游戏,请翻阅我的博客) 本实例代码量有些多,完整的版 ...

  8. 2020年12月-第02阶段-前端基础-CSS Day04

    1. 浮动(float) 记忆 能够说出 CSS 的布局的三种机制 理解 能够说出普通流在布局中的特点 能够说出我们为什么用浮动 能够说出我们为什么要清除浮动 应用 能够利用浮动完成导航栏案例 能够清 ...

  9. Spring如何解决循环依赖

    一.什么是循环依赖 多个bean之间相互依赖,形成了一个闭环. 比如:A依赖于B.B依赖于c.c依赖于A 通常来说,如果问spring容器内部如何解决循环依赖, 一定是指默认的单例Bean中,属性互相 ...

  10. Android的Proxy/Delegate Application框架

    转自:http://blogs.360.cn/360mobile/2013/11/25/proxydelegate-application/#comment-77 有的时候,为了实现一些特殊需求,如界 ...