文件处理

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(02)
    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基础---文件处理相关推荐

  1. Python基础-文件操作

    Python基础-文件操作 1.文件的打开和关闭 # 1.打开文件 # 默认r模式 只读 文件不存在,报错 # f = open('a.txt')# w模式 写权限 # 如果文件不存在,就会创建文件 ...

  2. python list 平均值_python list 最大值和平均值Python基础 - 文件拷贝

    最近在备份手机上的照片的时候,纯手工操作觉得有些麻烦,就想写个脚本自动进行.因为备份的时候有些照片以前备份过了,所以需要有个判重操作. 主要功能在copyFiles()函数里实现,如下: 电脑技术网认 ...

  3. Python基础--文件操作

    文件操作通常用来存储程序结果,以便下次可以直接使用,不必要重新运行一遍.文件操作最基本的三步:1.打开文件或者新建文件  2. 读或者写  3 关闭文件流保存数据. Python 访问模式如下: 打开 ...

  4. python读文件每一行、并把这行替换-python基础--文件操作实现全文或单行替换

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...

  5. Python基础---文件

    目录 一.文件介绍 1.什么是文件 2.文件的分类 3.文件的作用 4.使用文件的流程 二.读写文件简单操作 1.读取文件 2.写文件 3.文件拷贝 三.文件权限 读操作 1.r 2.rb 3.r+ ...

  6. python基础——文件与IO

    目录 一.打开文件 二.文件的读取 1.read方法 2.readlines方法 3.readline方法 4.for循环读取文件 三.文件的写入 1.文件不存在时 2.文件存在时 四.文件的追加 五 ...

  7. 第三章 Python基础——文件操作函数

    3.1三元运算 三元运算又称三目运算,是对简单条件的简写 if 条件成立:val=1 else:val=2 改成三元运算: val=1 if条件成立 else 2 3.2字符编码转换 编码的种类情况: ...

  8. python基础------文件读写操作、re、os和sys模块

    1. 文件读取 1.1 file文件 file文件读取:只能写入字符串,如果要写入字符串以外的数据,先将他转换为字符串,文件内的数据不容易操作 #文件打开 file.open() #文件关闭 file ...

  9. 4道Python基础文件操作函数 练习题

    一.利用b模式,编写一个cp工具,要求如下: 既可以拷贝文本又可以拷贝视频,图片等文件 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target_file ...

  10. 学会python的基础操作题_第3章 Python基础-文件操作函数 文件操作 练习题

    一.利用b模式,编写一个cp工具,要求如下: 1. 既可以拷贝文本又可以拷贝视频,图片等文件 2. 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target ...

最新文章

  1. 爬虫系列之----Requests库
  2. [PPOPP 15] PoweSwitch: 基于同步异步切换的分布式大规模图处理系统 学习总结
  3. undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复
  4. 打开指定摄像头_我在无人区深处,遇到了一个高清摄像头
  5. nessus安装_Nessus忘记密码怎么办?
  6. 1-6:学习shell之重定向
  7. burp intruder爆破出现 Payload set 1: Invalid number settings的解决办法
  8. spark的java源码,Spark源码包的编译
  9. firefox如何载入json文件_Firefox在书签工具栏中推隐藏“其他书签”文件夹功能
  10. 设计一个Enum Class
  11. 医疗时钟系统的设计方案
  12. 《多媒体技术基础》辅导
  13. php时间戳与date格式转换
  14. 设计模式-05.01-行为型-观察者模板模式
  15. CISP-PTE培训主要内容!
  16. 计算机技术的过去现在和未来,白皮书 | 计算机视觉的过去,现在和未来
  17. STM32国产替代方案
  18. 使用Quartus II进行FPGA实验之Switches, Lights, and Multiplexers
  19. 蚁群算法用于航路规划的matlab简单实现
  20. CF1349A. Orac and LCM(策略 + 维护后缀gcd)

热门文章

  1. 完全自定义TabBar(八)
  2. Django外键关系:一对一、一对多,多对多
  3. 小程序在父组件执行子组件方法,可适用于下拉刷新上拉加载之后执行子组件方法...
  4. Linux内核同步 - Read/Write spin lock
  5. jenkins 基础配置安装(Ⅰ)
  6. linux 取出本机IP
  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(59)-BLL层重构
  8. ORA-01940: cannot drop a user that is currently...
  9. 【转】CSS transitions#CSS3变换入门
  10. Python中的公共操作(运算符,公共方法,容器类型转换)