文件

装饰器,装饰函数或者类的方法.

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

  1. Python基础知识(八)----文件操作

    文件操作 一丶文件操作初识 ###f=open('文件名','模式',编码): #open() # 调用操作系统打开文件 #mode #对文件的操作方式 #encoding # 文件的编码格式 存储编 ...

  2. python基础知识-day7(文件操作)

    1.文件IO操作: 1)操作文件使用的函数是open() 2)操作文件的模式: a.r:读取文件 b.w:往文件里边写内容(先删除文件里边已有的内容) c.a:是追加(在文件基础上写入新的内容) d. ...

  3. python基础知识六 文件的基本操作+菜中菜

    基础知识六 文件操作 ​ open():打开 ​ file:文件的位置(路径) ​ mode:操作文件模式 ​ encoding:文件编码方式 ​ f :文件句柄 f = open("1.t ...

  4. 第三章:Python基础の函数和文件操作实战

    本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...

  5. Python基础7:文件操作

    [ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...

  6. python学习笔记-(七)python基础--集合、文件操作&函数

    本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...

  7. Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数

    1.        集合 1.1      特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...

  8. python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...

  9. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  10. python基础学习笔记——文件操作

    文件操作 初始文件操作 使用Python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了 根据打开方式的不同能够执行的操作 ...

随机推荐

  1. Windows、Linux、Android常用软件分享

    Windows.Linux.Android常用软件分享 前言 本来没准备写这篇博客,一是没时间,还有其他很多优先级更高的事情要做.二是写这种博客对我自己来说没什么的帮助,以前我就想好了不写教程类,使用 ...

  2. codeforces 615 D. Multipliers (数论 + 小费马定理 + 素数)

    题目链接: codeforces 615 D. Multipliers 题目描述: 给出n个素数,这n个素数的乘积等于s,问p的所有因子相乘等于多少? 解题思路: 需要求出每一个素数的贡献值,设定在这 ...

  3. Headmaster's Headache UVA - 10817

    UVA-10817 ans[i][s1][s2]表示考虑前i个人时,有至少1人教的科目集合为s1,有至少2人教的科目集合为s2时的最少工资集合用一个数字表示,转换成二进制后从后面开始数第i位的状态(1 ...

  4. pkill 和 pgrep总结

    查看进程ID和方便kill进程 pgrep -d 指定分隔符 pgrep -d ' ' -u root 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 -u p ...

  5. nginx缓存配置及开启gzip压缩

    阅读目录 一:nginx缓存配置 二:nginx开启gzip 回到顶部 一:nginx缓存配置 在前一篇文章,我们理解过http缓存相关的知识点, 请看这篇文章. 今天我们来学习下使用nginx服务来 ...

  6. iOS面试题之内存管理

    本文围绕内存管理的几种方法展开叙述. 1.内存管理是什么? 内存管理,就是对内存资源进行优化. 2.内存管理的三种方法? Objective-C的内存管理主要有三种方式ARC(自动内存计数).MRC( ...

  7. JVM初探

    ### JVM分为类的加载生命周期和gc垃圾回收两个大的方面#####首先是类的生命周期, 类的加载: --> 记载字节码 ---> 这个过程有类的加载起参与,双亲委托机制() --> ...

  8. 【转】java序列化一定要应该注意的6个事项!

    1.如果子类实现Serializable接口而父类未实现时,父类不会被序列化,但此时父类必须有个无参构造方法,否则会抛InvalidClassException异常. 2.静态变量不会被序列化,那是类 ...

  9. 02全志r58平台Android4.4.4下关闭内核中的CPU的开启关闭提示

    02全志r58平台Android4.4.4下关闭内核中的CPU的开启关闭提示 2017/8/18 13:53 版本:V1.0 开发板:SC5806(全志R58平台) SDK:android4.4.4 ...

  10. Android开发二维码之坑

    之前一直做的是.NET开发用的是C#语言,近段时间由于做一个APP这才用上了java,在二维码扫描整合到APP里面遇到扫描二维码之后没有返回值,经过反复的尝试最后终于拿到了返回值,之后觉得很有必要记录 ...