python关于文件操作
今日所得
文件操作模式的补充
文件光标的移动控制
截断文件
修改文件
函数的简单介绍
文件操作模式的补充
"""
r
w
a
将上面的三个模式称为纯净模式
r+
w+
a+
"""
with open(r'test',mode='r+',encoding='utf-8') as f:
print(f.readable())
print(f.writable())
print(f.readline()) # 'r+'模式比起'r'模式不仅可以读,还可以写入
f.write('hehehe') with open(r'test',mode='w+',encoding='utf-8') as f:
print(f.readable())
print(f.writable())
print(f.readline()) # 'w+'模式可读可写,但还是会清空文件再写入,没有文件时,会创建一个
f.write('hehehe') with open(r'test',mode='r+b') as f:
print(f.readable())
print(f.writable()) # b模式是以二进制的方式读取的,要想变成我们读的懂得文字需要用.decode来解码
res = f.read()
# print(res.decode('utf-8'))
res1 = str(res,encoding='utf-8')
print(res1)
文件光标的移动控制
"""
f.seek(offset,whence)
offset:相对偏移量 光标移动的位数
whence:
0:参照文件的开头 t和b都可以使用
1:参照光标所在的当前位置 只能在b模式下用
2:参照文件的末尾 只能在b模式下使用
""" with open(r'test','rt',encoding='utf-8') as f:
print(f.read(1))
# f.seek(6,0) # seek移动都是字节数
# f.seek(4,0) # seek移动都是字节数
# print(f.read(1)) # read读取的是字符数
f.seek(0,0)
print(f.read(1))
f.seek(0, 0)
print(f.read(1))
f.seek(6,0)
print(f.read()) with open(r'test','rb') as f:
print(f.read(3).decode('utf-8'))
f.seek(0,0)
print(f.read(3).decode('utf-8'))
f.seek(7,0)
print(f.read(1).decode('utf-8'))
# f.seek(6,0) # seek移动都是字节数
# f.seek(4,0) # seek移动都是字节数 with open(r'test','r+',encoding='utf-8') as f:
f.seek(3,0)
f.write('过') # 写入的字符不会插到俩个字符中间,只会覆盖当前位置的字符 with open(r'test','rb') as f:
print(f.read())
f.seek(-4,2) # 从后往前读
print(f.read().decode('utf-8'))
截断文件
with open(r'test','a',encoding='utf-8') as f:
f.truncate(6) # 接收的字节的长度 整型
# 保留0~6字节数 后面的全部删除(截断)
修改文件
# 修改文件1
# 先将数据由硬盘读到内存(读文件)
# 在内存中完成修改(字符串的替换)
# 再覆盖原来的内容(写文件)
with open(r'test02.txt','r',encoding='utf-8') as f:
data = f.read()
print(data)
print(type(data)) with open(r'test02.txt','w',encoding='utf-8') as f:
res = data.replace('egon','jason')
print(data)
f.write(res) """
优点:任意时间硬盘上只有一个文件 不会占用过多硬盘空间
缺点:当文件过大的情况下,可能会造成内存溢出
""" # 文件修改方式2
# 创建一个新文件
# 循环读取老文件内容到内存进行修改 将修改好的内容写到新文件中
# 将老文件删除 将新文件的名字改成老文件名
import os with open(r'test02.txt','r',encoding='utf-8') as read_f,\
open(r'test02.swap','a',encoding='utf-8') as write_f:
for line in read_f:
new_line = line.replace('jason','egon')
write_f.write(new_line)
os.remove('test02.txt')
os.rename('test02.swap','test02.txt') """
优点:内存中始终只有一行内容 不占内存
缺点:再某一时刻硬盘上会同时存在两个文件 """
函数的简单介绍
"""
可以通过变量名找到变量对应的值
可以通过函数名+括号 找到函数体所对应的代码并执行
""" # 函数名的命名规则跟变量名一模一样 # 函数就是工具,并且函数必须先定义后调用(函数名+括号) # 函数体代码定义截断只检测语法 不执行代码 def my_len():
n = 0
for i in s:
n += 1
print(n)
my_len()
python关于文件操作的更多相关文章
- Python :open文件操作,配合read()使用!
python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...
- Python 常见文件操作的函数示例(转)
转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- python中文件操作的六种模式及对文件某一行进行修改的方法
一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...
- python中文件操作的其他方法
前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...
- Python常见文件操作的函数示例
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
- python的文件操作及简单的用例
一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...
- python基本文件操作
python文件操作 python的文件操作相对于java复杂的IO流简单了好多,只要关心文件的读和写就行了 基本的文件操作 要注意的是,当不存在某路径的文件时,w,a模式会自动新建此文件夹,当读模式 ...
- [转]python file文件操作--内置对象open
python file文件操作--内置对象open 说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...
随机推荐
- Mdb文件工具类,UCanAccess使用,Access数据库操作
================================ ©Copyright 蕃薯耀 2020-01-09 https://www.cnblogs.com/fanshuyao/ 使用Ocbc ...
- UML-GoF设计模式
我认为,本章是重点中的重点.并非23个模式都被广泛应用,其中常用和最为有效的大概有15个模式. 1.适配器(Adapter) 1).使用场景 使用一个已经存在的类,但如果他的接口,也就是他的方法和你的 ...
- RNA分类|技术策略|终极目标
如何在转录水平分类所有RNA分子?可以罗列所有的可能性.技术策略和终极目标. 可能性:见纸 技术策略:RNA单细胞直测技术 终极目标:单细胞水平RNA直测技术决定新的人类RNA组和人类表观组学两个核心 ...
- Django2.0——请求与响应(上)
客户端与服务段通过http协议进行数据的传输,而http协议是一种双向单工的,且主动发起连接的只有客户端.故数据的传送就离不开请求和响应,客户端每发起一个请求,服务端就是返回一个响应.在django的 ...
- oi笔记——抽象的深度优先搜索
oi笔记--抽象的深度优先搜索 例题: \(N个数中选K个数,选出的和要为sum\) 例题分析: 对于每个点,我们可以按"选"和"不选"进行搜索,如图: 或者0 ...
- 深入理解JVM - JVM内存模型
各版本的差异 JDK1.6 在JDK1.6 的时候运行时常量池在方法区中 JDK1.7 在JDK1.7 的时候运行时常量池在堆中 JDK1.8 在JDK1.8 的时候,JVM内存模型直接将方法区移到了 ...
- Python 中 JSON和dict的转换,json的使用
一. 基础语法 在Python 的 json库中,共有四个方法.分别是: json.load() # 从文件中加载 json.loads() # 数据中加载 json.dump() # 转存到文件 j ...
- vscode Cannot edit in read-only editor.
原因 使用了runcode插件 这个错误一般出现在使用命令行输入的时候出现. 但是output页面是只读的,只能输出,不能用来输入. 解决 解放方法是,将run code设置为在Teminal中运行: ...
- mysql only_full_group_by
下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了. 一旦开启 only ...
- 吴裕雄--天生自然TensorFlow高层封装:解决ValueError: Invalid backend. Missing required entry : placeholder
找到对应的keras配置文件keras.json 将里面的内容修改为以下就可以了