一、文件处理流程

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. AJAX的原理

    AJAX 什么是AJAX AJAX= Asynchronous JavaScript and XML(异步的 JavaScript 和 XML): AJAX 不是新的编程语言,而是一种使用现有标准的新 ...

  2. .net core ef 通过dbfirst方式连接sql server数据库

    1. 创建基于.net core 的项目(过程略) 2. 使用nuget添加引用 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore ...

  3. 重置studio 3T 14天试用

    重置studio 3T 14天试用 bat 脚本 @echo off ECHO Reset Studio 3T Date of use ... FOR /f "tokens=1,2,* &q ...

  4. Eclipse使用技巧 - 2. Eclipse自动补全功能轻松设置

    本文介绍如何设置Eclipse代码自动补全功能.轻松实现输入任意字母均可出现代码补全提示框. Eclipse代码自动补全功能默认只包括 点”.” ,即只有输入”.”后才出现自动补全的提示框.想要自动补 ...

  5. Tomcat设置Windows下随系统自启

    一:确保tomcat 在点击bin\startup 文件可以正常启动访问: 二:本机安装有JDK: 三:本机环境变量配置:JAVA_HOME:C:\Java\jdk1.7.0_17; 四:本机Tomc ...

  6. Liunx系统下的进程与线程

    1.    进程.线程的概念 a.    进程是操作系统进行资源分配的单位. b.    线程(Thread)是程序中独立的指令流,是CPU调度和分派的基本单位. c.     多进程是指同时运行多种 ...

  7. 学习现代 JavaScript 编程的最佳教程

    天天编码 , 版权所有丨本文标题:0.0 学习现代 JavaScript 编程的最佳教程 转载请保留页面地址:http://www.tiantianbianma.com/the-modern-java ...

  8. 学习使人快乐6--XML

    一.XML概念 Extensible Markup Language,翻译过来为可扩展标记语言.Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发布的XML1.0规范. 二.学习XM ...

  9. Java中超大文件读写

    如果文件过大不能一次加载,就可以利用缓冲区: File file = new File(filepath); BufferedInputStream fis = new BufferedInputSt ...

  10. 微服务框架——SpringCloud

    1.SpringCloud微服务框架 a.概念:SpringCloud是基于SpringBoot的微服务框架 b.五大神兽:Eureka(服务发现).Ribbon(客服端负载均衡).Hystrix(断 ...