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下nginx+PHP-FPM安装配置
安装nginx apt-get install nginx 配置nginx 位置: /etc/nginx/nginx.conf ,其中包含了 include /etc/nginx/conf.d/*. ...
- (C#)Xamarin.ios 发布到 App Store
项目做到尾声了,IOS要发布,程序猿力Max来了. 不过就公司开发者账号就弄了一个月多,期间因为申请过D-U-N-S客服联系要公司资料时我们中途说取消了,后来再申请不知多少次了都没再回复... 给美国 ...
- iOS猜拳游戏源码
利用核心动画和Quartz2D做的一个小游戏.逻辑十分简单. 源码下载:http://code.662p.com/<ignore_js_op> 详细说明:http://ios.662p.c ...
- swfit:运算符重载 Operator Methods
Operator Methods Classes and structures can provide their own implementations of existing operators. ...
- TensorFlow中屏蔽warning的方法
问题 使用sudo pip3 install tensorflow安装完CPU版tensorflow后,运行简单的测试程序,出现如下警告: I tensorflow/core/platform/cpu ...
- jxcel - 好用的Excel与Java对象转换工具
更多精彩博文,欢迎访问我的个人博客 Jxcel简介 Jxcel是一个支持Java对象与Excel(目前仅xlsx.xls)互相转换的工具包. 项目地址:https://github.com/jptan ...
- c++ cpp和hpp
首先,我们可以将所有东西都放在一个.cpp文件内,编译器会将这个.cpp编译成.obj,即编译单元.一个程序可以由一个编译单元组成,也可以由多个编译单元组成.一个.cpp对应一个.obj,然后将所有的 ...
- _vimrc配置
set nocompatible set encoding=utf8 set guioptions-=T set number set guifont=consolas:h12 source $VIM ...
- 漫谈Word2vec之skip-gram模型
https://zhuanlan.zhihu.com/p/30302498 陈运文 复旦大学 计算机应用技术博士 40 人赞同了该文章 [作者] 刘书龙,现任达观数据技术部工程师,兴趣方向主要为自 ...
- Git Bash Windows客户端乱码
最近升级Git后,打开Git Bash出现了乱码,解决方法是: 注意,我升级之后,本地和字符集栏位出现了空白的情况.如果检查这里为空白,那么把本地设置为zn_CN,字符集设置为UTF-8