温岭建设阳光网站,做系统和做网站哪个简单一些,网站开发与网站制作,图片展示网站搭建第六篇#xff1a;python基础之文件处理 阅读目录 一.文件处理流程二.基本操作2.1 文件操作基本流程初探2.2 文件编码2.3 文件打开模式2.4 文件内置函数flush2.5 文件内光标移动2.6 open函数详解2.7 上下文管理2.8 文件的修改一.文件处理流程 打开文件#xff0c;得到文件句柄…第六篇python基础之文件处理 阅读目录 一.文件处理流程二.基本操作2.1 文件操作基本流程初探2.2 文件编码2.3 文件打开模式2.4 文件内置函数flush2.5 文件内光标移动2.6 open函数详解2.7 上下文管理2.8 文件的修改 一.文件处理流程 打开文件得到文件句柄并赋值给一个变量通过句柄对文件进行操作关闭文件 二.基本操作 2.1 文件操作基本流程初探 f open(chenli.txt) #打开文件
first_line f.readline()
print(first line:,first_line) #读一行
print(我是分隔线.center(50,-))
data f.read()# 读取剩下的所有内容,文件大时不要用
print(data) #打印读取内容f.close() #关闭文件 2.2 文件编码 文件保存编码如下 此刻错误的打开方式 fopen(chenli.txt,encodingutf-8)
f.read() 正确的打开方式 不指定打开编码默认使用操作系统的编码windows为gbklinux为utf8与解释器编码无关 fopen(chenli.txt,encodinggbk) #在windows中默认使用的也是gbk编码此时不指定编码也行 f.read() 2.3 文件打开模式 1 文件句柄 open(文件路径, 模式) 打开文件时需要指定文件路径和以何等方式打开文件打开后即可获取该文件句柄日后通过此文件句柄对该文件操作。 打开文件的模式有 r 只读模式【默认模式文件必须存在不存在则抛出异常】w只写模式【不可读不存在则创建存在则清空内容】x 只写模式【不可读不存在则创建存在则报错】a 追加模式【可读 不存在则创建存在则只追加内容】 表示可以同时读写某个文件 r 读写【可读可写】w写读【可读可写】x 写读【可读可写】a 写读【可读可写】 b表示以字节的方式操作 rb 或 rbwb 或 wbxb 或 wbab 或 ab 注以b方式打开时读取到的内容是字节类型写入时也需要提供字节类型不能指定编码 2.4 文件内置函数flush flush原理 文件操作是通过软件将文件从硬盘读到内存写入文件的操作也都是存入内存缓冲区buffer内存速度快于硬盘如果写入文件的数据都从内存刷到硬盘内存与硬盘的速度延迟会被无限放大效率变低所以要刷到硬盘的数据我们统一往内存的一小块空间即buffer中放一段时间后操作系统会将buffer中数据一次性刷到硬盘flush即强制将写入的数据刷到硬盘滚动条 import sys,timefor i in range(10):sys.stdout.write(#)sys.stdout.flush()time.sleep(0.2) 2.5 文件内光标移动 注意read(3)代表读取3个字符其余的文件内光标移动都是以字节为单位如seektellreadtruncate 整理中 2.6 open函数详解 1. open()语法open(file[, mode[, buffering[, encoding[, errors[, newline[, closefdTrue]]]]]])open函数有很多的参数常用的是filemode和encodingfile文件位置需要加引号mode文件打开模式见下面3buffering的可取值有011三个0代表buffer关闭只适用于二进制模式1代表line buffer只适用于文本模式1表示初始化的buffer大小encoding表示的是返回的数据采用何种编码一般采用utf8或者gbkerrors的取值一般有strictignore当取strict的时候字符编码出现问题的时候会报错当取ignore的时候编码出现问题程序会忽略而过继续执行下面的程序。newline可以取的值有None, \n, \r, ”, ‘\r\n用于区分换行符但是这个参数只对文本模式有效closefd的取值是与传入的文件参数有关默认情况下为True传入的file参数为文件的文件名取值为False的时候file只能是文件描述符什么是文件描述符就是一个非负整数在Unix内核的系统中打开一个文件便会返回一个文件描述符。 2. Python中file()与open()区别两者都能够打开文件对文件进行操作也具有相似的用法和参数但是这两种文件打开方式有本质的区别file为文件类用file()来打开文件相当于这是在构造文件类而用open()打开文件是用python的内建函数来操作建议使用open 3. 参数mode的基本取值 CharacterMeaning‘ropen for reading (default)‘wopen for writing, truncating the file first‘aopen for writing, appending to the end of the file if it exists‘bbinary mode‘ttext mode (default)‘open a disk file for updating (reading and writing)‘Uuniversal newline mode (for backwards compatibility; should not be used in new code)r、w、a为打开文件的基本模式对应着只读、只写、追加模式b、t、、U这四个字符与以上的文件打开模式组合使用二进制模式文本模式读写模式、通用换行符根据实际情况组合使用、 常见的mode取值组合 1 r或rt 默认模式文本模式读2 rb 二进制文件3 4 w或wt 文本模式写打开前文件存储被清空5 wb 二进制写文件存储同样被清空6 7 a 追加模式只能写在文件末尾8 a 可读写模式写只能写在文件末尾9
10 w 可读写与a的区别是要清空文件内容
11 r 可读写与a的区别是可以写到文件任何位置 2.7 上下文管理 with open(a.txt,w) as f:pass with open(a.txt,r) as read_f,open(b.txt,w) as write_f:dataread_f.read()write_f.write(data) 2.8 文件的修改 import os
with open(a.txt,r,encodingutf-8) as read_f,\open(.a.txt.swap,w,encodingutf-8) as write_f:for line in read_f:if line.startswith(hello):line哈哈哈\nwrite_f.write(line)os.remove(a.txt)
os.rename(.a.txt.swap,a.txt) 转载于:https://www.cnblogs.com/zatzsr98/p/7049660.html