python—文件处理
一、文件处理流程
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—文件处理的更多相关文章
- Linux下Python 文件内容替换脚本
Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...
- 【Python文件处理】递归批处理文件夹子目录内所有txt数据
因为有个需求,需要处理文件夹内所有txt文件,将txt里面的数据筛选,重新存储. 虽然手工可以做,但想到了python一直主张的是自动化测试,就想试着写一个自动化处理数据的程序. 一.分析数据格式 需 ...
- Python文件使用“wb”方式打开,写入内容
Python文件使用"wb"方式打开,写入字符串会报错,因为这种打开方式为:以二进制格式打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. 所以写入 ...
- Python 文件操作函数
这个博客是 Building powerful image classification models using very little data 的前期准备,用于把图片数据按照教程指示放到规定的文 ...
- python文件I/O(转)
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
- python 文件操作总结
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
- Python基础篇【第2篇】: Python文件操作
Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...
- python文件和元组
python文件操作 相较于java,Python里的文件操作简单了很多 python 获取当前文件所在的文件夹: os.path.dirname(__file__) 写了一个工具类,用来在当前文件夹 ...
- Python文件基础
===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...
- python文件打包格式,pip包管理
1..whl是python文件的一种打包格式, 在有些情况下,可以将文件的后缀名改为.zip并解压 2.cmd中,提示pip版本太低,先升级pip pip install --upgrade pi ...
随机推荐
- AJAX的原理
AJAX 什么是AJAX AJAX= Asynchronous JavaScript and XML(异步的 JavaScript 和 XML): AJAX 不是新的编程语言,而是一种使用现有标准的新 ...
- .net core ef 通过dbfirst方式连接sql server数据库
1. 创建基于.net core 的项目(过程略) 2. 使用nuget添加引用 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore ...
- 重置studio 3T 14天试用
重置studio 3T 14天试用 bat 脚本 @echo off ECHO Reset Studio 3T Date of use ... FOR /f "tokens=1,2,* &q ...
- Eclipse使用技巧 - 2. Eclipse自动补全功能轻松设置
本文介绍如何设置Eclipse代码自动补全功能.轻松实现输入任意字母均可出现代码补全提示框. Eclipse代码自动补全功能默认只包括 点”.” ,即只有输入”.”后才出现自动补全的提示框.想要自动补 ...
- Tomcat设置Windows下随系统自启
一:确保tomcat 在点击bin\startup 文件可以正常启动访问: 二:本机安装有JDK: 三:本机环境变量配置:JAVA_HOME:C:\Java\jdk1.7.0_17; 四:本机Tomc ...
- Liunx系统下的进程与线程
1. 进程.线程的概念 a. 进程是操作系统进行资源分配的单位. b. 线程(Thread)是程序中独立的指令流,是CPU调度和分派的基本单位. c. 多进程是指同时运行多种 ...
- 学习现代 JavaScript 编程的最佳教程
天天编码 , 版权所有丨本文标题:0.0 学习现代 JavaScript 编程的最佳教程 转载请保留页面地址:http://www.tiantianbianma.com/the-modern-java ...
- 学习使人快乐6--XML
一.XML概念 Extensible Markup Language,翻译过来为可扩展标记语言.Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发布的XML1.0规范. 二.学习XM ...
- Java中超大文件读写
如果文件过大不能一次加载,就可以利用缓冲区: File file = new File(filepath); BufferedInputStream fis = new BufferedInputSt ...
- 微服务框架——SpringCloud
1.SpringCloud微服务框架 a.概念:SpringCloud是基于SpringBoot的微服务框架 b.五大神兽:Eureka(服务发现).Ribbon(客服端负载均衡).Hystrix(断 ...