文件操作:

文件路径:d:\文件名.txt

编码方式:utf-8、gbk

操作方式:只读、只写、追加、读写、写读...

只读:r    或     rb

#相对路径

f=open("文件名",mode="r",encoding="utf-8")    #打开
content=f.read() #读
print(content)
f.close() #关闭

#绝对路径

f=open("f:\gaoya.txt",mode="r",encoding="gbk")     #打开
content=f.read() #读
print(content)
f.close() #关闭

绝对路径注意点:

1)、以什么编码方式储存的文件,就以什么编码方式打开,以免报错。

2)、隐藏文件类型的扩展名不需要追加。

f = open('文件名',mode='rb',)
content = f.read()
print(content)
f.close()

rb注意:非文字类型或文件的上传下载。

只写  w     或wb

#对于w:没有此文件就会创建文件
f = open('log',mode='w',encoding='utf-8')
f.write('文件内容')
f.close() # 先将源文件的内容全部清除,再写。
f = open('log',mode='w',encoding='utf-8')
f.write('文件内容')
f.close()

注意:W:没有此文件就会创建,有则删除原文件内容,再添加新内容。

f = open('log',mode='wb')     #已表明bytes类型,不用写编码类型
f.write('文件内容'.encode('utf-8'))
f.close()

追加:   a   或ab

f = open('log',mode='a',encoding='utf-8')
f.write('文件内容')
f.close()
f = open('log',mode='ab')
f.write('文件内容'.encode('utf-8'))
f.close()

读写     r+   或  r+b(比较常用)

f = open('log',mode='r+',encoding='utf-8')
print(f.read())
f.close()
f = open('log',mode='r+b')
print(f.read())
f.write('大猛,小孟'.encode('utf-8'))
f.close()

r+注意:读写正常,先读后追加

写读,从头开始,写多少占多少位

写读:w+

f = open('log',mode='w+',encoding='utf-8')
f.write('aaa') #先写
f.seek(0) #光标移到最前
print(f.read()) #后读
f.close()

注意:全部去除,再添加

追加  a+

f = open('log',mode='a+',encoding='utf-8')
f.write('文件内容')
f.seek(0)
print(f.read())
f.close()

功能详解

obj = open('log',mode='r+',encoding='utf-8')
content = f.read(3) # 读出来的都是字符 打印前三个字符
f.seek(3) # 是按照字节定光标的位置 三个字节一个字,从第二个字开始
f.tell() #告诉你光标的位置
print(f.tell())
content = f.read()
print(content)
f.tell() #知道光标位置
f.seek(count-9) #打印后三个字
f.readable() # 是否可读
line = f.readline() # 一行一行的读
line = f.readlines() # 每一行当成列表中的一个元素,添加到list中
f.truncate(4)
for line in f:
print(line)
f.close()

注意:必须一行一行读,截取读

最后加close

另一种写法:

with open('log',mode='r+',encoding='utf-8') as f,\
open('log',mode='w+',encoding='utf-8') as f1: #可打开多个文件
f.read()
print(f.read()) #不用写close

例题1:注册、登录

username = input('请输入你要注册的用户名:')
password = input('请输入你要注册的密码:')
with open('list_of_info',mode='w',encoding='utf-8') as f:
f.write('{}\n{}'.format(username,password))
print('恭喜您,注册成功')
lis = []
i = 0
while i < 3:
usn = input('请输入你的用户名:')
pwd = input('请输入你的密码:')
with open('list_of_info',mode='r+',encoding='utf-8') as f1:
for line in f1:
lis.append(line)
if usn == lis[0].strip() and pwd == lis[1].strip():
print('登录成功')
break
else:print('账号和密码错误')
i+=1

例题2:将文件中的星儿替换为阿娇

with open('小护士班主任',encoding='utf-8') as f,open('小护士班主任.bak','w',encoding='utf-8') as f2:
for line in f:
if '星儿' in line: #班主任:星儿
line = line.replace('星儿','阿娇')
#写文件
f2.write(line) #小护士:金老板 import os
os.remove('小护士班主任') #删除文件
os.rename('小护士班主任.bak','小护士班主任') #重命名文件

注意:替换原文件的内容,写一个与原文件内容相同的新文件,然后删除旧文件,将新文件重命名为原文件的 名字。

修改文件的步骤:读---写---删---重命名

概括:

文件处理
打开文件
open('路径','打开方式','指定编码方式')
打开方式 r w a r+ w+ a+ b
r+ 打开文件直接写 和读完再写
编码方式 —— utf-
操作文件

read 一次性读
readlines 一次性读
readline 一行一行读
不知道在哪儿结束
视频 图片 rb bytes 按照字节读
for循环 —— 最好!!!

write
光标 —— 文件指针
seek _ 指定光标移动到某个位置
tell _ 获取光标当前的位置
truncate _ 截取文件
关闭文件
close

编码/解码

#str --->byte  encode 编码
s = '二哥'
b = s.encode('utf-8')
print(b)
#byte --->str decode 解码
s1 = b.decode('utf-8')
print(s1)
s = 'abf'
b = s.encode('utf-8')
print(b)
#byte --->str decode 解码
s1 = b.decode('gbk')
print(s1)

Python 之 文件处理的更多相关文章

  1. Python读写文件

    Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...

  2. python计算文件的md5值

    前言 最近要开发一个基于python的合并文件夹/目录的程序,本来的想法是基于修改时间的比较,即判断文件有没有改变,比较两个文件的修改时间即可.这个想法在windows的pc端下测试没有问题. 但是当 ...

  3. python操作文件案例二则

    前言 python 对于文件及文件夹的操作. 涉及到 遍历文件夹下所有文件 ,文件的读写和操作 等等. 代码一 作用:查找文件夹下(包括子文件夹)下所有文件的名字,找出 名字中含有中文或者空格的文件 ...

  4. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  5. python学习 文件操作

    一.python打开文件 #=====================python 文件打开方式 open()===================== # open(fileName,type) t ...

  6. Python之文件读写

    本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input ...

  7. python 遍历文件夹 文件

    python 遍历文件夹 文件   import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹 for parent,dirn ...

  8. python检测文件的MD5值

    python检测文件的MD5值MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权 ...

  9. Python编码/文件读取/多线程

    Python编码/文件读取/多线程 个人笔记~~记录才有成长   编码/文件读取/多线程 编码 常用的一般是gbk.utf-8,而在python中字符串一般是用Unicode来操作,这样才能按照单个字 ...

  10. python 读写文件和设置文件的字符编码

    一. python打开文件代码如下: f = open("d:\test.txt", "w") 说明:第一个参数是文件名称,包括路径:第二个参数是打开的模式mo ...

随机推荐

  1. matlab的fda工具使用方法

    MATLAB中用FDATool设计滤波器及使用 该文章讲述了MATLAB中用FDATool设计滤波器及使用. 1. 在Matlab中键入fdatool运行Filter Design and Analy ...

  2. 【Swift 】- 闭包

    闭包是自包含带函数代码块,可以在代码中被传递和使用.我觉得可以这样理解:闭包相当于C#中的lambda表达式: 全局函数和嵌套函数,实际也是特殊的闭包. 通常闭包是以下三种形式: a,全局函数是一个有 ...

  3. sklearn one_hot 操作

    1.编码 one_hot编码不再过多叙述,类似于hash的那种方法去改变数的编码方式.比如label存在与(0,1,2,3),那么一条记录的label为3,那么将编码维[0,0,0,1] 2.包: t ...

  4. svn服务器端回退版本 (转)

    由于误操作,不小心将错误的代码提交到了svn上,于是想在服务器上撤销本次提交,经过尝试,发现进行以下步骤的操作即可彻底删除本次提交: 1.首先找到本次提交后生成的版本号,例如为r224. 2.登录到s ...

  5. MVC中Ajax post 和Ajax Get——提交对象Model

    HTTP 请求:GET vs. POST两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST.GET - 从指定的资源请求数据POST - 向指定的资源提交要处理的数据GET 基本上 ...

  6. Aggregate可以做字符串累加、数值累加、最大最小值

    Aggregate("", (m, n) => m + n + ".").TrimEnd('.'); .Aggregate(0, (m, n) => ...

  7. 微信小程序之本地缓存

    目前,微信给每个小程序提供了10M的本地缓存空间(哎哟妈呀好大) 有了本地缓存,你的小程序可以做到: 离线应用(已测试在无网络的情况下,可以操作缓存数据) 流畅的用户体验 减少网络请求,节省服务器资源 ...

  8. Linux系统SCSI磁盘扫描机制解析及命令实例(转)

    转载请在文首保留原文出处:EMC中文支持论坛 介绍 Linux系统扫描SCSI磁盘有几种方式?Linux新增LUN之后,能否不重启主机就认出设备?如果安装了PowerPath,动态添加/删除LUN的命 ...

  9. leetcode762

    class Solution { public: bool IsPrime(int n) { ) { return false; } || n == ) { return true; } ; i &l ...

  10. MySQL备份还原之二使用mysqldump

    1 场景描述: create table gyj_t1(id int,name varchar(10)); insert into gyj_t1 values(1,'AAAAA'); commit; ...