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参数表示的需要打开文件的相对路径(当前 ...
随机推荐
- [C/C++]编程规范一:头文件篇
一般来说,每一个.cc或者.cpp文件对应一个头文件(.h文件),当然,也有例外,例如一些测试单元或者main文件,头文件的一些规范可以令代码可读性.程序的性能等大为改观,所以还是要注意头文件的规范问 ...
- bash字符串处理
将movie目录下的文件名写到markdown文件中 , 再转html rm index.md ; for f in `find . *.* | sort`; do [ -f $f ] &&a ...
- android机器时间不同步导致网络请求出错
转自: https://blog.csdn.net/DeMonliuhui/article/details/82226601 获取网页时间代替系统时间 根据下列代码,我们就可以获取任何一个网址的时间( ...
- android stutio 添加依赖
添加依赖有 3种方法: 1 :copy jar 包到libs目录 ,add to library 2: copy aar 文件到libs ,gradle 文件 android 节点添加 repo ...
- [极客大挑战 2019]Secret File
0x00知识点 没有过滤file 使用php的file伪协议去读取文件 ?file=php://filter/convert.base64-encode/resource=flag.php 0x01解 ...
- 2019 Python工程师平均薪资22K,又涨了11.9%!
转行的同学最关心的就是Python的薪资情况了.今天我们就来具体看一下Python现在的薪资情况. 这是一张网友统计的Python工程师工资情况图表.详细说明了现在Python工程师在各个城市的薪资情 ...
- Linux-sys文件系统
1.sys文件系统本质上和proc文件系统是一样的,都是虚拟文件系统.都在根目录下有个目录(一个是/proc目录,另一个是/sys目录),因此都不是硬盘中的文件,都是内核中的数据结构的可视化接口. 2 ...
- Python笔记_第一篇_面向过程_第一部分_7.文件的操作(.txt)
在平时,我们不光要对程序内的代码进行输入和输出的操作,还要对程序外的文件进行和语言之间的交换.操作和运算.在基础部分,先讲解对于外部的.txt文件的操作. 第一部分 基本内容讲解 1. 什么是文件 ...
- Kafka、RabbitMQ、RocketMQ等消息中间件的介绍和对比
本博客强烈推荐: Java电子书高清PDF集合免费下载 https://www.cnblogs.com/yuxiang1/p/12099324.html 前言 在分布式系统中,我们广泛运用消息中间件进 ...
- Proe5.0导出PDF至配置文件的相关方法,VC++
定义文件bcsMessage.txt PLM PLM PLM # login login 测试 # Active messagebox menu Active messagebox menu 激活菜单 ...