一、文件处理流程

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. C#来操作Word

    创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设置页眉.页码: 插入图片,设置图片宽高以及给图片添加标题: 插入表 ...

  2. Lesson 2-2(列表,元组)

    2.3 列表 2.3.1 列表的创建方法 --- 使用方括号 [] ,括号中的元素之间使用逗号隔开. >>> [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] > ...

  3. MYSQL的安全模式:sql_safe_updates介绍

    什么是安全模式 在mysql中,如果在update和delete没有加上where条件,数据将会全部修改.不只是初识mysql的开发者会遇到这个问题,工作有一定经验的工程师难免也会忘记写入where条 ...

  4. MyCat分片规则--笔记(二)

    概述 myCat实现分库分表的策略,对数据量的处理带来很大的便利,这里主要整理下MyCat的使用以及常用路由算法,针对MyCat里面的事务.集群后续再做整理:另外内容整理,不免会参考技术大牛的博客,内 ...

  5. mysql更新字段内容

    update article set a_content = REPLACE(`a_content`,'www.abc.com','www.bcd.com')

  6. Cocos Creator中使用事件中心

    export class EventCenter { /** 监听数组 */ private listeners = {}; /** * 注册事件 * @param name 事件名称 * @para ...

  7. linux 搭建ftp服务并设置限制访问目录

    服务器有好几个项目,新项目前端外包,因为要微信授权登陆,所以前端没有办法本地调试,必须上次ftp在我们服务器上调试代码,当然要限制ftp访问的目录,否则整个服务器项目都能看到了. 安装vsftpd s ...

  8. 二维条码扫描模组在肯德基KFC的无纸化点餐解决方案

    在如今提倡节约资源的环境下,肯德基在品牌发展中,逐渐实现无纸化点餐,不仅节约了纸质点餐单,而且还具有节约资源的示范作用.而其中二维码扫描模组是这套无纸化点餐方案的重点,在整套设备中,加入二维码扫描模组 ...

  9. Vue面试中,经常会被问到的面试题/Vue知识点整理

    一.对于MVVM的理解? MVVM 是 Model-View-ViewModel 的缩写.Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑.View 代表UI 组件,它负责将数 ...

  10. Alpha冲刺(3/10)——2019.4.25

    作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 项目Alpha冲刺(团队) 团队目标 切实可行的计算机协会维修预约平台 开发工具 Eclipse 团队信息 队员学号 ...