python文件操作:文件处理与操作模式
本文目录:
一,文件处理的模式基本概念
文件处理的三个步骤
# 1. 打开文件拿到文件对象(文件对象====>操作系统打开文件====>硬盘)
# f=open(r'文件的路径',mode='文件的打开模式',encoding='字符编码') #绝对路径:C:\a\b\c.txt,/a/b/c/c.txt 相对路径:相对于当前执行文件所在的文件夹为起始点进行查找b/c/a.txt # 2. 操作文件:读/写
# f.read()
# f.readlines()
# f.readline()
# f.readable() # 3. 向操作系统发送指令关闭文件,回收操作系统资源
# f.close()
上下文管理
with open(r'D:\project\test\今日内容',mode='rt',encoding='utf-8') as f:
# data=f.read()
# print(data)
# print('='*100)
name=input('>>: ')
for line in f:
print(line)
二,打开文件模式 详解
基本概念
# 打开文件的模式有三种纯净模式:r(默认的) w a # 控制操作文件内容格式的两种模式:t(默认的) b
# 大前提: tb模式均不能单独使用,必须与纯净模式结合使用
# t文本模式:
# 1. 读写文件都是以字符串为单位的
# 2. 只能针对文本文件
# 3. 必须指定encoding参数
# b二进制模式:
# 1.读写文件都是以bytes/二进制为单位的
# 2. 可以针对所有文件
# 3. 一定不能指定encoding参数
打开文件模式详解
1. r只读模式: 在文件不存在时则报错,文件存在文件内指针直接跳到文件开头
with open('a.txt',mode='rt',encoding='utf-8') as f:
print(f.readlines()) # 用户认证功能
inp_name=input('请输入你的名字: ').strip()
inp_pwd=input('请输入你的密码: ').strip()
with open(r'db.txt',mode='rt',encoding='utf-8') as f:
for line in f:
# 把用户输入的名字与密码与读出内容做比对
u,p=line.strip('\n').split(':')
if inp_name == u and inp_pwd == p:
print('登录成功')
break
else:
print('账号名或者密码错误')
2. w只写模式: 在文件不存在时会创建空文档,文件存在会清空文件,文件指针跑到文件开头
# with open('b.txt',mode='wt',encoding='utf-8') as f:
# print(f.writable())
# print(f.readable())
# f.write('你好\n')
# f.write('我好\n') # 强调:在文件不关闭的清空下,后写的内容一定跟着前写内容的后面
# f.write('大家好\n')
# f.write('111\n222\n333\n') # lines=['1111','22222','33333']
# for line in lines:
# f.write(line)
# f.writelines(lines) # 注册功能:
# name=input('username>>>: ').strip()
# pwd=input('password>>>: ').strip()
# with open('db1.txt',mode='at',encoding='utf-8') as f:
# info='%s:%s\n' %(name,pwd)
# f.write(info)
3. a只追加写模式: 在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾
# with open('c.txt',mode='at',encoding='utf-8') as f:
# f.write('44444\n')
# f.write('55555\n')
# print(f.readable())
# print(f.writable()) # r+ w+ a+
# with open('a.txt',mode='r+t',encoding='utf-8') as f:
# print(f.readable())
# print(f.writable())
# print(f.readline())
# f.write('你好啊') # b: 读写都是以二进制位单位
# with open('b.txt',mode='rb') as f:
# data=f.read()
# # print(data,type(data))
# print(data.decode('utf-8')) # with open('1.png',mode='rb') as f:
# data=f.read()
# print(data) # with open('d.txt','wb') as f:
# f.write('你好'.encode('gbk')) # with open('1.png',mode='rb') as f:
# data=f.read()
#
# with open('2.png',mode='wb') as f:
# f.write(data)
4拷贝工具
src_file=input('源文件路径: ').strip()
dst_file=input('目标文件路径: ').strip()
with open(r'%s' %src_file,mode='rb') as read_f,open(r'%s' %dst_file,mode='wb') as write_f:
for line in read_f:
# print(line)
write_f.write(line)
python文件操作:文件处理与操作模式的更多相关文章
- python 文件操作: 文件操作的函数, 模式及常用操作.
1.文件操作的函数: open("文件名(路径)", mode = '模式', encoding = "字符集") 2.模式: r , w , a , r+ , ...
- Python开发【第三篇】:Python基本之文件操作
Python基本之文本操作 一.初识文本的基本操作 在python中打开文件有两种方式,即:open(...) 和 file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open ...
- python基础之文件操作
对于文件操作中最简单的操作就是使用print函数将文件输出到屏幕中,但是这种操作并不能是文件保存到磁盘中去,如果下调用该数据还的重新输入等. 而在python中提供了必要的函数和方法进行默认情况下的文 ...
- 关于Python中的文件操作(转)
总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...
- Python 基礎 - 文件操作_v2
嗯,那如何要把游標的位置給打印來? #!/usr/bin/env python3 # -*- coding:utf-8 -*- f = open('test', 'r') print(f.tell() ...
- python基础知识---操作文件
一.打开文件 open()函数 open函数返回一个文件对象. 用法:open('文件名','模式') 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内 ...
- Python::OS 模块 -- 文件和目录操作
os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...
- Python学习笔记——文件操作
python中,一切皆对象. 一.文件操作流程 (1)打开文件,得到一个文件句柄(对象),赋给一个对象: (2)通过文件句柄对文件进行操作: (3)关闭文件. 文件对象f通过open()函数来创建 ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- python读写操作文件
with open(xxx,'r,coding='utf-8') as f: #打开文件赋值给F ,并且执行完了之后不需要 f.close(). 在Python 2.7 及以后,with又支持同时 ...
随机推荐
- 为什么单个TCP连接很难占满带宽
计算 TCP吞吐量的公式 TCP窗口大小(bits) / 延迟(秒) = 每秒吞吐量(bits) 比如说windows系统一般的窗口大小为64K, 中国到美国的网络延迟为150ms. 64KB = 6 ...
- MSSQL Server 2005 安装补丁出现 Setup Support Files Failure
给MSSQL Server 2005 安装补丁时出现 Setup Support Files Failure,检查了错误日志,不是系统错误,而是应用错误.出现这个错误的原因:以我的安装为例,我开始装 ...
- 【AMAD】django-oauth-toolkit -- 为Django集成Oauth2加入一些好货!
简介 个人评分 简介 如果你面对下面其中的一个问题: 你的Django app需要暴露一个接口,你希望能够收到Oauth2协议的保护 你需要实现Oauth2鉴权服务器,让你的基础设施可以进行token ...
- 软件测试第4周小组作业:WordCount优化
一.基本任务:代码编写+单元测试 1.Github地址: https://github.com/Wegnery/New_WordCount 2.PSP2.1表格 PSP2.1 PSP阶段 预估耗时 ( ...
- Spring RestTemplate详解(转载)
转载来源:https://www.cnblogs.com/zhaoyan001/p/8442602.html 1.什么是REST? REST(RepresentationalState Transfe ...
- 项目使用Hbase进行数据快速查询的代码案例
之前项目中对于数据详情的查询使用的ddb技术,由于成本过高,现考虑使用开源的hbase框架,借此机会进行hbase的代码案例记录,之前已经对 hbase的原理进行介绍,介绍了hbase中的rowkey ...
- linux命令 ip
- phpexcel 生成大于26列数据
function excelExport2($fileName = '', $headArr = [], $data = [], $widths=[]) { ob_clean(); // $fileN ...
- 向量运算(lua,三维) 点乘、叉乘、模、夹角
向量运算在游戏制作中经常用到,稍微总结一下. 一.点乘 如图,假设 向量a与b的点乘表示a在b上的投影与b的模的乘积 公式: 代码: function MathHelper.GetVector3D ...
- Graph、DFS、BFS
Graph.java package Graph; import LinearLIst.bag.Bag; import edu.princeton.cs.algs4.In; public class ...