一    操作文件的方法:

f.read() #读取所有内容,光标移动到文件末尾
f.readline() #读取一行内容,光标移动到第二行首部
f.readlines() #读取每一行内容,存放于列表中 f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符
f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符
f.writelines(['333\n','444\n']) #文件模式
f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式 #了解
f.readable() #文件是否可读
f.writable() #文件是否可读
f.closed #文件是否关闭
f.encoding #如果文件打开模式为b,则没有该属性
f.flush() #立刻将文件内容从内存刷到硬盘
以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
 
 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)
二  文件内光标移动

一: read(3):

  1. 文件打开方式为文本模式时,代表读取3个字符

  2. 文件打开方式为b模式时,代表读取3个字节

二: 其余的文件内光标移动都是以字节为单位如seek,tell,truncate

注意:

  1. seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的

  2. truncate是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果

三  文件的另一种打开模式‘b’模式
1 那么b模式是与t模式有相似的地方,就是他们都不能单独使用,必须跟r,w,a。一起用在一起。
2 b模式下的一个特殊点既是读写都以bytes为单位的。
3 b模式下不能再指定encoding参数了。
那么下面我们来用实例介绍他的几种用法:
‘rb’
with open('1.jpg',mode='rb')as f:
data=f.read()
print(data)
print(type(data)) with open('a,txt',mode='rb')as f:
data=f.read
print(data.decode('utf-8'))
prirnt(type(data))
首先我们可以看出,rb模式下,我们可以读文本文件也可以读视频,图片文件。
但是在进行文本文件的读取时,我们进行解码,因为在rb模式下读写都以bytes为单位,所以如果我们不进行解码就会报错。
‘rw’
在‘wb’模式下
with open('b,txt',mode='wb')as f:
msg='哈喽‘
f.write(msg.encode('gbk)) with open('b,txt',mode='wb')as f:
msg='哈喽‘
f.write(msg.encode('utf-8'))
同样的我们在进行wb的时候,我们也要将中文字符编码成bytes类型可以使用(’gbk‘)或者(’utf-8‘)

’ab‘

在’ab‘模式下

with open('b,txt',mode='ab')
f.write('你好'.encode('utf-8'))
或者
f.write('你好'.encode('gbk'))

四   文件复制

文件复制的原理就是按照原文件再创建一个新的文件,将原文件的内容一行一行的读出来然后写入新创建的文件。

文件copy

import sys

l=sys.argv#把命令行中的解释器后空格分隔后的所有参数都存成列表,例如:你输入23 3 2 3 
那么出来的方式则是:[’23‘,’3‘,’2‘,’3‘]
print(l) src_file_path=l[1]
dst_file_path=l[2] print(src_file_path)
print(dst_file_path) with open(r'%s''%src_file_path,mode='rb')as f1,\
open(r'%s'%dst_file_path,mode='wb')as f2: for line in f1:
f2.write(line)

五    文件修改的两种方式

第一种:

1 先把文件内容全部读入内存。

2 然后在内存中的进行文件的修改。

3  最后将修改后的内容写入原文件,那么在这个过程实际上是一个对于原文件的更新。

    with open('user,txt',mode='r',encoding='utf-8')as f:
data=data.read()#将读取的文件内容付给data data=data.repalce('你好','你好[哈哈哈]')#将文件中的’你好‘换成’你好[哈哈哈]‘ with open(’user,txt‘,mode='w',encoding='utf-8')as f: f.write(data) #将修改后的内容再传进去原文件,实现对于原文件的覆盖。

第二种

1 先对于原文件进行读取操作。

2 再通过文件的w实现创建一个新的文件,

3 然后对原文件进行逐行查找,将找到的需要修改的地方进行修改运用replace,然后写入新的文件

4 最后删除os.remove(原文件),修改新文件 os.rename().将文件名改为与原文件相同

import sys
impot os with open(’user,txt‘,mode='rt',encoding='utf-8')as f1,\
open('user,txt,swap',mode='wt',encoding='utf-8')as f2: for line in f1:
if '你好'in line:
line=line.replace('你好',’你好[哈哈哈]‘) f2.write(line) os.remove('user,txt')
os.rename('user,txt,swap','user,txt')

六  函数

函数的定义:用来实现某种功能的工具。我们要想使用函数,必须先定义函数

函数分类:内置函数和自定义函数
、内置函数
为了方便我们的开发,针对一些简单的功能,python解释器已经为我们定义好了的函数即内置函数。对于内置函数,我们可以拿来就用而无需事先定义,如len(),sum(),max()
ps:我们将会在最后详细介绍常用的内置函数。 、自定义函数
很明显内置函数所能提供的功能是有限的,这就需要我们自己根据需求,事先定制好我们自己的函数来实现某种功能,以后,在遇到应用场景时,调用自定义的函数即可。
												

python之路07文件处理的更多相关文章

  1. Python之路 day2 文件基础操作

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa ''' #f,文件句柄;模式 a : append 追加文件内容 f = open( ...

  2. 小白的Python之路 day2 文件操作

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  3. Python Revisited Day 07 (文件处理)

    目录 7.1 二进制数据的读与写 7.1.1 带可选压缩的Pickle 7.1.2 带可选压缩的原始二进制数据 7.2 文本文件的写入与分析 7.2.1 写入文本 7.2.2 分析文本 7.2.3 使 ...

  4. python之路(五)-文件操作

    文件操作无非两个,即:读.写 python 2.x: 文件句柄 = file('文件路径', '模式') python3.x: 文件句柄 = open('文件路径', '模式') 打开文件的模式有: ...

  5. 小白学习Python之路---py文件转换成exe可执行文件

    一.背景 今天闲着无事,写了一个小小的Python脚本程序,然后给同学炫耀的时候,发现每次都得拉着其他人过来看着自己的电脑屏幕,感觉不是很爽,然后我想着网上肯定有关于Python脚本转换成可执行文件的 ...

  6. python之路---08 文件操作

    二十六.   文件 f = open(文件路径,mode = '模式',encoding = '编码格式') 1.基础 ① 读写时,主要看光标的位置 ②操作完成要写    f.close( ) f.f ...

  7. python之路---07 join() fromkeys() 深浅拷贝

    二十四.基本数据类型补充 1.join() "*".join("马虎疼") # 马*虎*疼 把传递进去的参数进行迭代.  获取到的每个元素和前面的*进行拼接.  ...

  8. NO.3:自学python之路------集合、文件操作、函数

    引言 本来计划每周完成一篇Python的自学博客,由于上一篇到这一篇遇到了过年.开学等杂事,导致托更到现在.现在又是一个新的学期,春天也越来越近了(冷到感冒).好了,闲话就说这么多.开始本周的自学Py ...

  9. Python之路Python文件操作

    Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ...

随机推荐

  1. 1.1.3 A+B for Input-Output Practice (III)

    A+B for Input-Output Practice (III) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...

  2. 20155207 2006-2007-2 《Java程序设计》第5周学习总结

    20155207 2006-2007-2 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 语法与继承架构 Java中的错误以对象方式呈现为 java.lang.Throwab ...

  3. HDU 6188:Duizi and Shunzi(贪心)(广西邀请赛)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6188 题意 有n个数字,每个数字小于等于n,两个相同的数字价值为1,三个连续的数字价值为1 .问这n个 ...

  4. Fzu软工第二次作业-词频分析

    (0)前言: Github项目 作业地址 (1)PSP表格: PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 ...

  5. Let the Balloon Rise map一个数组

    Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the ...

  6. (1)集合 ---遍历map集合

    Map接口     实现Map接口的类用来存储键(key)-值(value) 对.Map 接口的实现类有HashMap和TreeMap等.Map类中存储的键-值对通过键来标识,所以键值不能重复. Ha ...

  7. 微软更新导致的IIS7设置默认主页无效

    近期两个superKM的老客户出现问题,网站不能自动检索默认文档,必须通过完整网址才能访问. 值得一提的是出现问题的都是 IIS7 和7.5版本,服务器为windows server2008 R2. ...

  8. BL老师的建议,数学不好的,大数据一票否决--后赋从java转大数据

    __________________________ 作者:我是蛋蛋链接:https://www.zhihu.com/question/59593387/answer/167235075来源:知乎著作 ...

  9. pycharm -- 导入主题(theme) and 修改背景颜色(护眼色)

    前情提要 众所周知,随着python语言的不断流行,越来越多的程序员开始用python来开发自己的项目以及产品. pycharm作为一款流行的IDE,被越来越多的程序员所接受和使用. 尽管pychar ...

  10. spring boot 项目文件结构

    启动类建议放在RootPackage的原因: 根据SpringBoot的内置实现,Spring默认从@ComponentScan注解所在的位置开始向后扫描,也就是说,只要我们将组件放在启动类所在的Ro ...