python基础知识11-文件操作
文件
装饰器,装饰函数或者类的方法.
1.文件的基本操作
打开文件:
注意绝对路径与相对路径.
path = 'text.txt'
path = r'/home/pyvip/py_case/text.txt'
file = open(path,'w+') r代表只读
读取与关闭,参数加引号.w全部覆盖写入.a在文件末尾追加.
file.read() 把所有文件读出来.
file.readline() 逐行读取.
file.readlines() 返回一个列表,每一个元素一行.
file.close() 文件打开操作完成之后一定要注意关闭.
写入:
file.write('Python')
file.writelents(['1','2','3'])
查看与移动文件指针:
file.tell()
file.seek(0,0) 指针
file.flush() 不关闭保存
file.writelines(['hello','python','hello','world'])会把传入的列表拼接到一起写入.
file.tell() 查看指针位置.
file.seek()移动指针位置,按照字节的步来移动.
file.seek(0),移到文件开头.
file.readline()
readlines()一行一个元素
文件模式: r:以只读的方式打开.
rb:以二进制打开一个文件用于只读,一般用于非文本文件如图片.
r+:打开一个文件用于读写.
rb+:以二进制格式打开一个文件用于读写.
w:打开一个文件用于写入.如果文件存在则覆盖,如果不存在创建新文件.
wb:以二进制格式打开一个文件只用于写入,如该文件已存在则将其覆盖,如果该文件不存在,创建新文件.
w+:打开一个文件用于读写.其他同w.
wb:以二进制格式打开一个文件用于读写.其他同w.
a:打开一个文件用于追加.已存在指针放结尾,不存在创建新文件.
ab:以二进制格式打开一个文件用于追加.
a+:打开一个文件用于读写,追加模式.
ab+:二进制格式打开一个文件用于追加
2.上下文管理器
with open(path,'r') as f:
print(f.read())
with能够自动关闭文件,不需要执行close方法
实现原理:--enter--() 和 -- exit--()
open的操作也是一个类
import time
class Runtime:
def --enter--(self):
self.start_time.time()
return self.start_time
def --exit--(self, exc_type, exc_val, exc_tb):
self.ent_time = time.time()
self.run_time = self.ent_time - self.start_time
print(self.run_time)
with Runtime() as a: # with 后面加个实例.
print(a) #a是开始时间,--enter--()返回值赋值给.
for i in range(10000000):
pass
通过这两个方法可以方便的实现上下文管理
with会把--enter--的返回值赋给as后的变量.
以后代码全部用with open(,) as file:
3.I/O流
with poen('aaa,txt','r') as file:
print(file.read())
创建IO操作:
import io
sio = io.StringIO() #创建一个对象用来保存读取.
写入:
sio.write(str(i)) #写在内存当中的,临时储存的.只能写字符串,二进制的字节文件.
读取:
sio.getvalue() #获取值
StringIO在内存中如同打开文件一样操作字符串,因此也有文件的许多方法,当创建的StringIO调用close()方法时,在内存中的数据会被丢失.
BytesIO
创建BytesIO:
import io
bio = io.BytesIO()
写入:
bio.write(b'abcd) #b表示以字节的格式写入.
读取:
sio.getvalue()
BytesIO和StringIO类似,但是BytesIO操作的是Bytes数据.
4.常用工具
os模块提供python和操作系统交互的接口:
os模块自动识别系统类型.
直接调用系统命令:
import os
os.systerm('ls')
通用路径操作:
os.path
os.path.join(r'/home/pyvip',r'pycase')路径拼接,自动加 / .
文件目录操作:
os.mkdir('test') #创建文件夹
os.rename('text','test1')
os提供了python和操作系统交互方式,只要是和操作系统相关,就可以尝试在os模块中找方法.
shutil高级文件操作
shutil模块提供了许多关于文件和文件集合的高级操作:
移动文件: shutil.move('aaa.txt','llll') #文件名,文件夹名.
复制文件: shutil.copytree()
删除文件夹: shutil.rmtree()
python基础知识11-文件操作的更多相关文章
- Python基础知识(八)----文件操作
文件操作 一丶文件操作初识 ###f=open('文件名','模式',编码): #open() # 调用操作系统打开文件 #mode #对文件的操作方式 #encoding # 文件的编码格式 存储编 ...
- python基础知识-day7(文件操作)
1.文件IO操作: 1)操作文件使用的函数是open() 2)操作文件的模式: a.r:读取文件 b.w:往文件里边写内容(先删除文件里边已有的内容) c.a:是追加(在文件基础上写入新的内容) d. ...
- python基础知识六 文件的基本操作+菜中菜
基础知识六 文件操作 open():打开 file:文件的位置(路径) mode:操作文件模式 encoding:文件编码方式 f :文件句柄 f = open("1.t ...
- 第三章:Python基础の函数和文件操作实战
本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...
- Python基础7:文件操作
[ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...
- python学习笔记-(七)python基础--集合、文件操作&函数
本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...
- Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数
1. 集合 1.1 特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- python基础学习笔记——文件操作
文件操作 初始文件操作 使用Python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了 根据打开方式的不同能够执行的操作 ...
随机推荐
- oauth2(spring security)报错method_not_allowed(Request method 'GET' not supported)解决方法
报错信息 <MethodNotAllowed> <error>method_not_allowed</error> <error_description> ...
- C# BitmapData和Marshal.Copy()用法
C# BitmapData和Marshal.Copy()用法 //此函数用法例子如下: public static byte[] GetGrayArray(Bitmap srcBmp, Rectang ...
- selenium2+python自动化2-元素定位
嘻嘻,书接上回,接着唠,这里先补充一下自动化要掌握的四个步骤吧:获取元素.操作元素.获取返回值.断言(返回结果与期望结果是否一致),最后就是自动化测试报告的生成.这一片主要讲一下如何进行元素定位.元素 ...
- 机器学习概念之特征处理(Feature processing)
不多说,直接上干货! 肯定也有不少博友,跟我一样,刚开始接触的时候,会对这三个概念混淆. 以下是,特征处理.特征提取.特征转换和特征选择的区别! 特征处理主要包含三个方面:特征提取.特征转换和特征选择 ...
- CentOS Linux下MySQL 5.1.x的安装、优化和安全配置
下载页面:http://dev.mysql.com/downloads/mysql/5.1.html#downloads 到页面底部,找到Source downloads,这个是源码版本,下载第1个T ...
- 牛人cad二次开发网站(.net)
http://through-the-interface.typepad.com/through_the_interface/autocad_net/ http://through-the-inter ...
- 跟随鼠标指针跑的div拖拽效果
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- ubuntu破解密码方法
摘要: 开机按住任何键(shift)停住grub菜单,进入advanced option for ubuntu,出现的菜单中,光标移动至…(recovery mode)按E进入编辑,找到ro reco ...
- upupw nginx服务器 rewrite设置
最近开始尝试使用upupw的Nginx套件做开发,感觉还挺不错的,也遇到了一些问题,决定在这里记录一下,同时也希望可以帮助到一些人. 用习惯了Apache,改用Nginx之后会有些不适应,但是咬咬牙就 ...
- jquery.placeholder.min.js让吃屎的IE浏览器支持placeholder去吧
描述:现在都是HTML5时代了,所有的浏览器都支持placeholder,唯独IE不支持.现在我们有了这款插件,IE下终于可以支持了! 图片展示: 兼容浏览器:IE6+/Firefox/Goog ...