一、文件处理流程

1、打开文件,得到文件句柄并赋值

2、通过句柄对文件进行操作

3、关闭文件

二、文件打开模式

1、r,只读,默认模式

2、w,只写

3、a,追加

4、 r+、w+、x+、a+ ,可读可写

##  模式  r—只读    默认只读

f = open('冲鸭','r',encoding='utf-8')

data = f.read()
print(data) ## 是否可读,返回布尔
print(f.readable()) # 一次读一行
print('第一行',f.readline())
print('第二行',f.readline()) ## 一次读出多行,放在一个列表中
print(f.readlines()) ## ['人家刚刚就很尴尬法规和\n', 'wefrdferwfer'] f.close()

  

##  模式  w—只写
## 若文件存在,清空文件
## 若文件不存在,运行后新建文件
## 写的文件内容 是str类型 f = open('冲鸭','w',encoding='utf-8')
f.write('sdcdcd\n')
f.write('dsfedf\ndsdds\nsdsx\n') ## 是否可写
f.writable() ##
f.writelines(['2222\n','dsssd\n']) f.close()

  

## 模式   a—追加  

f = open('冲鸭','a',encoding='utf-8')
f.write('写在文件最后')
f.close()

  

## 读取文件中真正的换行符号 \r\n
f = open('a.txt','r',encoding='utf-8',newline='')
print(f.readlines())

  

3、文件修改

## 修改文件内容(先读后写,覆盖文件内容)

src_f = open('冲鸭','r',encoding='gbk')
data = src_f.readlines()
src_f.close() dst_f = open('冲鸭','w',encoding='gbk')
dst_f.write(data[0])
dst_f.close()

  

4、with  open  ....  as ... 打开方式

##  另一种打开方式
with open('冲鸭','r',encoding='gbk') as f:
print (f.read()) with open('冲鸭','r',encoding='gbk') as src_f,\
open('冲鸭_new','w',encoding='gbk') as dst_f:
data = src_f.read()
dst_f.write(data)

  

5、b+方式,以字节打开

## b的方式打开不能指定编码
## 字符串-----encode------》bytes
## bytes------decode-----》字符串
f = open('冲鸭','rb')
data = f.read()
print(data.decode('utf-8')) f = open('冲鸭','wb')
f.write('啦啦'.encode('utf-8'))

  

6、方法

f = open('a.txt','r',encoding='utf-8')

## tell()  当前光标位置
print(f.tell()) ### 0
f.readline()
print(f.tell()) ### 7 以字节方式,1个汉字3个字节,换行\r\t 2个字节 ## seek() 控制光标的移动(字节)
f.seek(3)
print(f.tell()) ## 1 ## read() 读取一个字符
print(f.read(1))

 

## truncate()  截取(字节方式)  不能以w+方式打开,会清空文件
f = open('a.txt','r+',encoding='utf-8')
f.truncate(10)

  

7、seek()方法:移动光标

## seek() 移动光标位置
## seek(10,n) 10--移动10个字节位置,换行\r\t 是2个字节
## n—0,默认从开头开始;1—从当前光标位置开始;2—从结尾开始
f = open('a.txt','rb')
print(f.tell())
f.seek(-10,2)
print(f.tell())

  

f = open('a.txt','rb')

## 循环文件方式
for i in f:
print(i.decode('utf-8')) ## 读取文件最后一行
## 循环文件方式
for i in f:
offs = -10
while True:
f.seek(offs,2)
data = f.readlines()
if len(data) > 1:
print('文件最后一行的内容为:',data[-1].decode('utf-8'))
break
offs *= 2

  

python—文件处理的更多相关文章

  1. Linux下Python 文件内容替换脚本

    Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...

  2. 【Python文件处理】递归批处理文件夹子目录内所有txt数据

    因为有个需求,需要处理文件夹内所有txt文件,将txt里面的数据筛选,重新存储. 虽然手工可以做,但想到了python一直主张的是自动化测试,就想试着写一个自动化处理数据的程序. 一.分析数据格式 需 ...

  3. Python文件使用“wb”方式打开,写入内容

    Python文件使用"wb"方式打开,写入字符串会报错,因为这种打开方式为:以二进制格式打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. 所以写入 ...

  4. Python 文件操作函数

    这个博客是 Building powerful image classification models using very little data 的前期准备,用于把图片数据按照教程指示放到规定的文 ...

  5. python文件I/O(转)

    Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...

  6. python 文件操作总结

    Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...

  7. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

  8. python文件和元组

    python文件操作 相较于java,Python里的文件操作简单了很多 python 获取当前文件所在的文件夹: os.path.dirname(__file__) 写了一个工具类,用来在当前文件夹 ...

  9. Python文件基础

    ===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...

  10. python文件打包格式,pip包管理

    1..whl是python文件的一种打包格式, 在有些情况下,可以将文件的后缀名改为.zip并解压 2.cmd中,提示pip版本太低,先升级pip   pip install --upgrade pi ...

随机推荐

  1. Js获取客户端用户Ip地址

    利用搜狐查询接口查询Ip地址: <!DOCTYPE html> <html> <head> <meta charset="utf-8" / ...

  2. Leetcode 992 Subarrays with K Different Integers

    题目链接:https://leetcode.com/problems/subarrays-with-k-different-integers/ 题意:已知一个全为正数的数组A,1<=A.leng ...

  3. asp.net table/gridview 合并列

    public void MergeCell(TableRow trow) { TableCell currentCell = trow.Cells[0]; TableCell prevCell = n ...

  4. mysql 两例习题

    一. 综述:两张表,一张顾客信息表customers,一张订单表orders .创建一张顾客信息表customers,字段要求如下: c_id 类型为整型,设置为主键,并设置为自增长属性 c_name ...

  5. [原创]Zynq SDIO WIFI SotfAP调试

    编译好kernel和driver 加载firmware后,运行下述命令. mkdir /var/run/ mkdir /var/run/hostapd   ifconfig -a           ...

  6. 《ServerSuperIO Designer IDE使用教程》-4.增加台达PLC驱动及使用教程,从0到1的改变。发布:v4.2.3版本

    v4.2.3 更新内容:1.优化数据存储部分,提高效率.2.修复数据库服务停止造成程序异常退出的现象.3.修复本机没有串口造成无法增加设备驱动的情况.4.增加编辑设备和监测点配置信息功能.5.增加台达 ...

  7. wordpress网站迁移

    1.首先从原网站导出数据库文件 进入mysql文件夹:/etc/mysql mysqldump -uroot -p wordpress > wordpress.sql 2.将原网站文件打包 ta ...

  8. windows配置ssh免密登录linux

    客户端(windows)要做的事情 默认机器上已安装git,若没有,请先安装git 查看本地是否有ssh公钥文件夹,若没有,则创建文件夹 mkdir ~/.ssh //创建文件夹 生成公钥 邮箱最好为 ...

  9. 难受的ESlint语法检测

    相信写过vue的各位小白都有过这样的体验,明明引入的文件语法是对的,明明自己写的代码是对的,但是总会报语法错误,没错,就是ESlint代码检测搞的鬼, 就算你在注释后面多打一个空格,它都会去搞事情,简 ...

  10. myBase Desktop 6.5.1 无限期试用

    清空安装目录下的"nyfedit.ini"文件的"App.UserLic.FirstUseOn="配置项的值