文件操作:

文件路径: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. [CF662C]Binary Table

    luogu 题意 你有一个\(n*m\)的\(01\)矩阵.你可以把任意一行或者一列的\(01\)取反.求矩阵中最少的\(1\)的数量. \(n\le20,m\le10^5\) sol 很自然地有一个 ...

  2. Visual Studio Code教程:基础使用和自定义设置

    一.界面介绍 1.1 界面介绍 1.2 文件夹和文件的打开 文件——>打开文件夹/打开文件 1.3 新建文件/文件夹 新建文件: a. 文件——>新建文件: b. 按Ctrl+n; c. ...

  3. 安卓apk包重复签名问题

    安卓数字签名指的是对apk包做文件摘要并加密,在安装apk包时做解密和验证以保证包体不被篡改.这里先普及下签名和验证流程.签名文件保存在apk包里META-INF目录下,包含3个文件: 1.后缀为MF ...

  4. 在actionbar中加入item的方法

    首先在menu文件夹中创建post.xml <?xml version="1.0" encoding="utf-8"?> <menu xmln ...

  5. linux下用户和组相关的文件及相关管理命令

    1.用户信息文件  /etc/passwd 示例root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2: ...

  6. N个节点的二叉树有多少种形态(卡特兰数)

    N个节点的二叉树有多少种形态   这是一道阿里的面试题.其实算不上新鲜,但是我之前没关注过,如今碰到了,就顺便探讨下这个问题吧:) 拿到这个题,首先想到的是直接写出表达式肯定不行,所以有必要从递推入手 ...

  7. 程序实现DataGrid过滤设置

    给gdv_pro.ActiveFilterString赋值就能直接控制DataGrid过滤 gdv_pro.ActiveFilterString语法: 最简单方式:gdv_pro.ActiveFilt ...

  8. 如何使用Visual Studio2015进行C++项目创建

    打开Visual Studio 2015,点击程序左上角的“文件”--“新建”--“项目”. 在弹出窗口选择模板“visual C++”,在新建项目栏里选择“win32控制台应用程序”,直接点击确定. ...

  9. leetcode783

    对BST树进行中序遍历,得到递增序列,然后依次计算相邻两元素之间的差,并保存最小的差. class Solution { public: vector<TreeNode*> V; void ...

  10. Java占位符替换工具类

    import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFact ...