文件操作:

文件路径: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. C#网络编程(基本概念和操作) - Part.1

    引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助.如果想要更加深入的内容,可以参考相关书籍 ...

  2. show-overflow-tooltip 宽度设置

    设置样式:不能放在scoped中 <style lang="scss"> .el-tooltip__popper{max-width:80%}</style> ...

  3. mysql数据库备份脚本

    mysql数据库备份脚本 mysql数据库分库备份脚本:[root@localhost tmp]# cat mysql.sh #!/bin/bash USER=root PASSWORD=joy4yo ...

  4. PHP 判断手机号归属地 和 运营商的免费接口

    在项目开发的时候,需要去查询又一批手机号或者固话的具体信息(归属地 运营商) 就需要写一个脚本,来批量请求接口来得到我们想要的数据 学习源头:https://blog.csdn.net/shaerdo ...

  5. MVC 控制器之间传值学习——session

    刚接触MVC不久,写的一些代码自己都不忍心看下去.路漫漫其修远兮,宝宝还需努力!之前只用过Session做登录时用户信息的储存,今天对集合类数据做了小小的尝试:利用session在控制器之间传值,以减 ...

  6. 搭建Dynamic Web Project(动态web项目)的springmvc工程1

    本文转载自:http://blog.csdn.net/typa01_kk/article/details/45902955 此篇创建Dynamic Web Projec工程(动态web项目),下一篇, ...

  7. 【转】使用Jmeter录制web脚本

    1.web性能测试以及web http请求基本原理. 再介绍录制jmeter脚本之前,我们先谈一下web性能测试.web就是调用http/https接口, 其实没有是什么复杂度可言.只是我们必须清楚, ...

  8. AngularJS:过滤器

    ylbtech-AngularJS:过滤器 1.返回顶部 1. AngularJS 过滤器 过滤器可以使用一个管道字符(|)添加到表达式和指令中. AngularJS 过滤器 AngularJS 过滤 ...

  9. 1125 Chain the Ropes

    题意:略. 思路:思考一下,最先拿去对折的绳子会参与之后的每次对折,而对一条绳子而言,对折的次数越多剩下的就越短,因此,要让最终的结果尽可能长,应该先让较短的绳子先对折. 代码: #include & ...

  10. DEV CheckComboboxEdit、CheckedListBoxControl(转)

    CheckComboboxEdit //先清空所有,若在窗体Load事件中,也可以不清空 //cbRWYs.Properties.Items.Clear(); var RwyList = tspro. ...