python基础---文件处理
文件处理
f=open(‘文件’,’r’) 打开一个文件
f.close() 关闭文件,相当于保存
1、字符编码
在文件处理过程中,首先有一个重要的概念,就是字符编码
字符编码:把人类的字符编译成计算机能认识的数字
字符编码表:就是一张字符与数字对应关系的表
ascii
gbk
utf-8 (硬盘中常用编码)
unicode (内存中常用编码)
unicode ---->encode(‘utf-8’) 编码----> bytes
bytes ----> decode(‘utf-8’)解码 ----> Unicode
原则:字符以什么格式编译的,就要以什么格式解码
python3中的字符串分为两种
x='egon' 默认存为unicode
y=x.encode('utf-8') 使用encode编码为bytes
python2中字符串也分为两种
x=u'egon' 加u表示存为Unicode格式,与python3的字符串一样
y='alex' 默认存为bytes
2、文件模式
r 文本模式的读,在文件不存在,不会创建新文件
w 文本模式的写,文件存在则清空,不存在则创建
a 文本模式的追加,文件存在光标跳到文件末尾,文件不存在创建
rb 即直接从硬盘中读取bytes
wb 以二进制写模式打开
ab 以二进制追加模式打开
r+ 读的时候可写
w+ 写的时候可读
a+ 追加时可读写
a. r模式
f.read() #一次性读取文本中全部的内容,以字符串的形式返回结果
read()的使用:
read(3) #文件打开方式为文本模式时,代表读取3个字符
#文件打开方式为b模式时,代表读取3个字节
#unicode格式中3个字节=1个字符
控制光标的移动(都是以字节为单位):
f.seek() #控制光标移动几个字节
有三种模式:
0 从首字节开始
1 b模式下运行,以当前光标所在的位置为参照物
2 b模式下运行,以最后一个字节为参照物
练习:模拟tail –faccess.log
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# python3 tail.py -f access.log
import time
import sys
with open (r '%s' % sys.argv[ 2 ], 'rb' ) as f:
f.seek( 0 , 2 )
while True :
line = f.readline()
if line:
print (line.decode( 'utf-8' ),end = '')
else :
time.sleep( 0.2 )
|
truncate() #文件的打开方式为可写,从文件开头开始截取,留下指定字节之后的字节
f.readline() #只读取文本第一行的内容,以字符串的形式返回结果
f.readlines() #读取文本所有内容,并且以数列的格式返回结果,一般配合for in使用
f.readble() #判断文件是否有读的权限,返回布尔值
b. w模式
f.write() #写入文件,换行需要手动写换行符\n
f.writelines() #一次写入多行
c. a模式
f.tell() #查看光标位置
with open(‘文件’,’w’,encoding=’utf-8’) as f:
f.write(‘11111\n’) #会把文件的内容赋值给f,执行完毕会自动close
python中把脚本后的参数传入脚本内的方法:
import sys
print(sys.argv)
一个cp文件的python小脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import sys
#python3 copy.py source.file target.file
if len (sys.argv) < 3 :
print ( 'Usage:python3 copy.py source.file target.file' )
sys.exit()
#r'C:\Users\Administrator\PycharmProjects\python18期周末班\day3\test.jpg'
with open (r '%s' % sys.argv[ 1 ], 'rb' ) as read_f,\
open (r '%s' % sys.argv[ 2 ], 'wb' ) as write_f:
for line in read_f:
write_f.write(line)
|
本文转自lyndon博客51CTO博客,原文链接http://blog.51cto.com/lyndon/1948655如需转载请自行联系原作者
python基础---文件处理相关推荐
- Python基础-文件操作
Python基础-文件操作 1.文件的打开和关闭 # 1.打开文件 # 默认r模式 只读 文件不存在,报错 # f = open('a.txt')# w模式 写权限 # 如果文件不存在,就会创建文件 ...
- python list 平均值_python list 最大值和平均值Python基础 - 文件拷贝
最近在备份手机上的照片的时候,纯手工操作觉得有些麻烦,就想写个脚本自动进行.因为备份的时候有些照片以前备份过了,所以需要有个判重操作. 主要功能在copyFiles()函数里实现,如下: 电脑技术网认 ...
- Python基础--文件操作
文件操作通常用来存储程序结果,以便下次可以直接使用,不必要重新运行一遍.文件操作最基本的三步:1.打开文件或者新建文件 2. 读或者写 3 关闭文件流保存数据. Python 访问模式如下: 打开 ...
- python读文件每一行、并把这行替换-python基础--文件操作实现全文或单行替换
python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...
- Python基础---文件
目录 一.文件介绍 1.什么是文件 2.文件的分类 3.文件的作用 4.使用文件的流程 二.读写文件简单操作 1.读取文件 2.写文件 3.文件拷贝 三.文件权限 读操作 1.r 2.rb 3.r+ ...
- python基础——文件与IO
目录 一.打开文件 二.文件的读取 1.read方法 2.readlines方法 3.readline方法 4.for循环读取文件 三.文件的写入 1.文件不存在时 2.文件存在时 四.文件的追加 五 ...
- 第三章 Python基础——文件操作函数
3.1三元运算 三元运算又称三目运算,是对简单条件的简写 if 条件成立:val=1 else:val=2 改成三元运算: val=1 if条件成立 else 2 3.2字符编码转换 编码的种类情况: ...
- python基础------文件读写操作、re、os和sys模块
1. 文件读取 1.1 file文件 file文件读取:只能写入字符串,如果要写入字符串以外的数据,先将他转换为字符串,文件内的数据不容易操作 #文件打开 file.open() #文件关闭 file ...
- 4道Python基础文件操作函数 练习题
一.利用b模式,编写一个cp工具,要求如下: 既可以拷贝文本又可以拷贝视频,图片等文件 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target_file ...
- 学会python的基础操作题_第3章 Python基础-文件操作函数 文件操作 练习题
一.利用b模式,编写一个cp工具,要求如下: 1. 既可以拷贝文本又可以拷贝视频,图片等文件 2. 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target ...
最新文章
- 爬虫系列之----Requests库
- [PPOPP 15] PoweSwitch: 基于同步异步切换的分布式大规模图处理系统 学习总结
- undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复
- 打开指定摄像头_我在无人区深处,遇到了一个高清摄像头
- nessus安装_Nessus忘记密码怎么办?
- 1-6:学习shell之重定向
- burp intruder爆破出现 Payload set 1: Invalid number settings的解决办法
- spark的java源码,Spark源码包的编译
- firefox如何载入json文件_Firefox在书签工具栏中推隐藏“其他书签”文件夹功能
- 设计一个Enum Class
- 医疗时钟系统的设计方案
- 《多媒体技术基础》辅导
- php时间戳与date格式转换
- 设计模式-05.01-行为型-观察者模板模式
- CISP-PTE培训主要内容!
- 计算机技术的过去现在和未来,白皮书 | 计算机视觉的过去,现在和未来
- STM32国产替代方案
- 使用Quartus II进行FPGA实验之Switches, Lights, and Multiplexers
- 蚁群算法用于航路规划的matlab简单实现
- CF1349A. Orac and LCM(策略 + 维护后缀gcd)
热门文章
- 完全自定义TabBar(八)
- Django外键关系:一对一、一对多,多对多
- 小程序在父组件执行子组件方法,可适用于下拉刷新上拉加载之后执行子组件方法...
- Linux内核同步 - Read/Write spin lock
- jenkins 基础配置安装(Ⅰ)
- linux 取出本机IP
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(59)-BLL层重构
- ORA-01940: cannot drop a user that is currently...
- 【转】CSS transitions#CSS3变换入门
- Python中的公共操作(运算符,公共方法,容器类型转换)