今日所得

  文件操作模式的补充

  文件光标的移动控制

  截断文件

  修改文件

  函数的简单介绍

文件操作模式的补充

"""
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关于文件操作的更多相关文章

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

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

  2. Python 常见文件操作的函数示例(转)

    转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...

  3. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  4. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  5. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  6. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

  7. Python常见文件操作的函数示例

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...

  8. python的文件操作及简单的用例

    一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...

  9. python基本文件操作

    python文件操作 python的文件操作相对于java复杂的IO流简单了好多,只要关心文件的读和写就行了 基本的文件操作 要注意的是,当不存在某路径的文件时,w,a模式会自动新建此文件夹,当读模式 ...

  10. [转]python file文件操作--内置对象open

    python file文件操作--内置对象open   说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...

随机推荐

  1. Mdb文件工具类,UCanAccess使用,Access数据库操作

    ================================ ©Copyright 蕃薯耀 2020-01-09 https://www.cnblogs.com/fanshuyao/ 使用Ocbc ...

  2. UML-GoF设计模式

    我认为,本章是重点中的重点.并非23个模式都被广泛应用,其中常用和最为有效的大概有15个模式. 1.适配器(Adapter) 1).使用场景 使用一个已经存在的类,但如果他的接口,也就是他的方法和你的 ...

  3. RNA分类|技术策略|终极目标

    如何在转录水平分类所有RNA分子?可以罗列所有的可能性.技术策略和终极目标. 可能性:见纸 技术策略:RNA单细胞直测技术 终极目标:单细胞水平RNA直测技术决定新的人类RNA组和人类表观组学两个核心 ...

  4. Django2.0——请求与响应(上)

    客户端与服务段通过http协议进行数据的传输,而http协议是一种双向单工的,且主动发起连接的只有客户端.故数据的传送就离不开请求和响应,客户端每发起一个请求,服务端就是返回一个响应.在django的 ...

  5. oi笔记——抽象的深度优先搜索

    oi笔记--抽象的深度优先搜索 例题: \(N个数中选K个数,选出的和要为sum\) 例题分析: 对于每个点,我们可以按"选"和"不选"进行搜索,如图: 或者0 ...

  6. 深入理解JVM - JVM内存模型

    各版本的差异 JDK1.6 在JDK1.6 的时候运行时常量池在方法区中 JDK1.7 在JDK1.7 的时候运行时常量池在堆中 JDK1.8 在JDK1.8 的时候,JVM内存模型直接将方法区移到了 ...

  7. Python 中 JSON和dict的转换,json的使用

    一. 基础语法 在Python 的 json库中,共有四个方法.分别是: json.load() # 从文件中加载 json.loads() # 数据中加载 json.dump() # 转存到文件 j ...

  8. vscode Cannot edit in read-only editor.

    原因 使用了runcode插件 这个错误一般出现在使用命令行输入的时候出现. 但是output页面是只读的,只能输出,不能用来输入. 解决 解放方法是,将run code设置为在Teminal中运行: ...

  9. mysql only_full_group_by

    下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了. 一旦开启 only ...

  10. 吴裕雄--天生自然TensorFlow高层封装:解决ValueError: Invalid backend. Missing required entry : placeholder

    找到对应的keras配置文件keras.json 将里面的内容修改为以下就可以了