Python基础之 一 文件操作
文件操作
流程:
1:打开文件,得到文件句柄并赋值给一个变量
2:通过句柄对文件进行操作
3:关闭文件
模式解释
r(读) , w(写) ,a(附加)r+(读写的读), w+(读写的写),a+(读附加的附加)
b表示以二进制模式打开文件(3.0里网络传输只能用此模式,或者视频音频等)
以上模式以二进制模式表示为:rb,wb,ab,rb+,wb+,ab+
如何将文本以二进制写入文件
f = open('file','wb')
f.write('hello world',encode()) 这里转换为二进制格式写入文件即可
U表示在读取时,可以将\r \n \r\n 自动转换为\n
写法:rU 或者 r+U
缓冲:
0:禁用缓冲
负数:使用系统默认缓冲
1:只缓冲1行数据
2+:指定缓冲空间大小
打开文件举例: f1=open('/tmp/passwd','r')
方法:
read(): 将文件内容以字符串形式全部读取。
readable():判断文件是否可读。
write():写文件
writeable():判断文件是否可写
flush():刷新手工将内存中的文件内容写到硬盘上
readline()用法:读取一行。
举例读取前5行:
for i in range(5):
file.readline()
readlines():将文件内容以列表形式打印(这个方法效率低对大文件)
举例打印文件前10行:
for index,line in enumerate(f.readlines()):
if index == 9:
break
print(line.strip())
这种方法性能不好,不要用在大文件处理,因为会一次性读取所有文件内容。
tell(): 显示当前指针在文件中位置(字节显示)
seek(offset[whence]) 指针偏移
whence:偏移量起点
0:从文件头 (默认位置)
1:从当前位置
2:从文件尾部 例如:f1.seek(0,2)
offset:偏移数量
seekable():判断文件中的光标是否可以移动,可以返回True,否则返回False.(linux中一切皆文件,终端设备在系统里也是文件,但是光标是不可以移动的。)
encoding:打印文件的编码
errors:异常处理
fileno():返回文件句柄在内存中的编号(这个编号属于操作系统内部IO),一般不使用这个方法(忘掉它吧)。
name:调用当前文件名称
isatty():看终端设备(打印机,屏幕等终端),用于底层交互。
close(): 关闭文件
closed:判断文件是否关闭,返回(True/False)
truncate():截断,如果不带参数会清空文件。带参数如:truncate(20):表示从文件开头往后截取20个字符。需要以a模式打开文件。
注意:文件以r+模式打开文件,读取文件是按照正常方式从头开始读取,但中途写入还是会直接写到文件末尾。
打开读取文件效率最高的写法:
count = 0
for line in f:
if count == 9:
print('----分隔符-----')
print(line.strip())
continue
print(line.strip())
count += 1
这种方法是内存只保存一行,读取的一行覆盖上一行原理。
文件修改方法:
只有同时打开2个文件,第一个是需要读取的源文件,第二个是写入内容的新文件,过程是读取源文件每行数据,如果符合修改需求,则修改,然后将每行数据写入新文件中。
src_file = open('源文件名',encoding='utf-8')
dst_file = open('文件名.bak','w',encoding='utf-8')
for line in src_file:
if '准备修改的字符串' in line.strip():
#注意:这里修改一行后一定要重新指定到一个变量
line = line.replace(准备修改的字符串,替换的字符串)
print(line.strip())
dst_file.write(line)
src_file.close()
dst_file.close()
with : 可以自动在with执行完后自动关闭打开的文件
with open('file1','r',encoding='utf-8') as f1 ,\
open('file2','r',encoding='utf-8') as f2: #使用with可以同时打开多个文件功能,写法建议参考这里。
....
小技巧动态输出显示进度条
import sys,time
for i in range(10):
sys.stdout.write('#') 动态输出到屏幕,不会换行
sys.stdout.flush() 刷新屏幕,显示动态输出
time(0.1) 为查看方便
Python基础之 一 文件操作的更多相关文章
- 第三章:Python基础の函数和文件操作实战
本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...
- Python基础7:文件操作
[ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...
- python学习笔记-(七)python基础--集合、文件操作&函数
本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...
- Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数
1. 集合 1.1 特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- python基础学习笔记——文件操作
文件操作 初始文件操作 使用Python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了 根据打开方式的不同能够执行的操作 ...
- Python基础知识(八)----文件操作
文件操作 一丶文件操作初识 ###f=open('文件名','模式',编码): #open() # 调用操作系统打开文件 #mode #对文件的操作方式 #encoding # 文件的编码格式 存储编 ...
- python基础八之文件操作
python的文件操作 1,打开文件 编码方式要和文件的编码方式相同! #open('路径','打开方式','指定编码方式') f = open(r'E:\pycharm\学习\day8\test', ...
随机推荐
- ubuntu下php-fpm多实例运行配置
php-fpm服务一般情况下我们只会配置一个php-fpm了,如果我们碰到要实现多实例php-fpm服务要如何来配置呢,下面一起来看看吧. 这里是在LNMP环境的基础上配置多实例的过程.因为我在使用的 ...
- NIO入门之轻松读取大文件
NIO入门之轻松读取大文件 今天同事碰到了一个问题,从游戏服务器下载下来的输出log有一个多G大.用记事本打不开,EditPlus也打不开,都提示文件太大.用word也打不开,提示文件大于512M.打 ...
- HDU 4465 Candy (数学期望)
题意:有两个盒子各有n个糖(n<=2*105),每天随机选1个(概率分别为p,1-p),然后吃掉一颗糖.直到有一天打开盒子一看,这个盒子没有糖了.输入n,p,求此时另一个盒子里糖的个数的数学期望 ...
- 微信小程序开发系列七:微信小程序的页面跳转
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...
- Android(java)学习笔记176: 远程服务的应用场景(移动支付案例)
一. 移动支付: 用户需要在移动终端提交账号.密码以及金额等数据 到 远端服务器.然后远端服务器匹配这些信息,进行逻辑判断,进而完成交易,返回交易成功或失败的信息给移动终端.用户提交账号. ...
- python_对字符串操作.join() 效率 比 + 效率高
将列表中的字符拼接成字符串时,有两种方式 方式1:使用join()方法,将列表转为字符串 方式2:使用+运算符,循环遍历 import time str1 = ['a','b','c','d','e' ...
- python基础一 day2 数据类型
int: bool: 类型转换: str到int有条件,str必须是数字, "123e"是错误的 bool转换为int类型,需要int(x) 结果: 结果: 空字 ...
- HTML5新特性之History
几年前,Ajax的兴起给互联网带来了新的生机,同时也使用户体验有了质的飞跃,用户无需刷新页面即可获取新的数据,而页面也以一种更具有交互性的形式为用户展现视图,可以说这种变化对互联网发展的贡献是史无前例 ...
- Python matlab octave 矩阵运算基础
基础总结,分别在三种软件下,计算 求逆矩阵 矩阵转置 等运算,比较异同 例子:正规方程法求多元线性回归的最优解 θ=(XTX)-1XTY octave: pwd()当前目录 ones() zeros( ...
- 初探node.js
一.定义及优势 定义:Node.js是一个基于 Chrome V8 引擎 的 JavaScript 运行时,它以事件驱动为基础实现了非阻塞模型. 优势:由于Web场景下的大多数任务(静态资源读取.数据 ...