11. 文件基本操做、上下文管理、IO流、使用工具

   文件基本操做   

1、文件

持久储存:python

保存内存中数据都是易丢失的,只有保存在硬盘中才能持久的存储,保存在硬盘中的基本方法就是把数据写入文件中工具

file = open("text.txt","w+")               #打开文件
file.write("hello python !!!")             #写入文件
file.flush()                               #保存文件
print(file.tell())                         #查看文件指针
print(file.seek(0))                        #移动文件指针
print(file.read())                         #读取文件
print(file.readline())                     #每次只能读取一行
# print(file.readlines() )                 #把每一行的内容读取出来当成一个元素,放到一个列表里面
file.close()                               #关闭文件


16
0
hello python !!!
with open("text.txt","w+") as f:           #不须要关闭  会对文件自动保存和关闭
    f.write("hello python !!!")
    f.flush()
    f.tell()
    f.seek(0)
    print(f.read())

hello python !!!

2、文件打开的模式

3、其余模式

 rb   rb+     wb     wb+    ab    ab+ spa

加个b的做用:以二进制的格式打开文件,进行上述操做 。操作系统

     上下文管理     

 

经过这两个方法能够方便的实现上下文管理 指针

with会把 __enter__ 的返回值赋值给 as 后的变量code

 

class MyClass:       #上下文管理器

    def __enter__(self):        #进入   进入时须要执行的代码,至关于准备工做
        print("开始运行的时候调用了我")
        return "开始了"
    def __exit__(self, exc_type, exc_val, exc_tb):       #退出  退出时须要执行的代码,至关于收尾工做

        print("结束运行的时候调用了我")

with MyClass() as a:   #使用with打开文件,则文件不须要本身关闭,会自动的关闭
    print(a)
    for i in range (1,6):
        print(i)

开始运行的时候调用了我
开始了
1
2
3
4
5
结束运行的时候调用了我

           IO流          

1、StringIO

 

StringIO在内存中如同打开文件同样操做字符串,所以也有文件的不少方法 blog

当建立的StringIO调用 close() 方法时,在内存中的数据会被丢失接口

import io
sio = io.StringIO          #建立IO操做
sio.write('hello python')           #写入

# sio.seek(0)
# print(sio.read())
print(sio.getvalue())         #读取
sio.close()

2、BytesIO

BytesIO 和 StringIO 相似,可是BytesIO操做的是 Bytes数据ip

import io
sio = io.BytesIO           #建立IO操做
sio.write(b"abcd")           #写入

# sio.seek(0)
# print(sio.read())
print(sio.getvalue())         #读取
sio.close()

       使用工具       

1、os 操做系统交互

        os 模块提供python和操做系统交互的接口内存

os 提供了Python和操做系统交互方式,只要是和操做系统相关,就能够尝试在os模块中找方法

import os
os.system("ls")       #直接调用系统命令
os.system("pwd")
#通用路径操做
import os
os.path
<module 'posixpath' from '/usr/lib/python3.5/posixpath.py'>
os.path.join("/home/pyvip","py_case1")
'/home/pyvip/py_case1'
#文件目录操做
os.mkdir("/home/pyvip/projects/home/pyvip/projects/基础班/ly")
os.rename("ly","ly1")

2、shutil 高级文件操做

        shutil 模块提供了许多关于文件和文件集合的高级操做

import shutil
shutil.copytree("ly1","lll")          #复制文件件
shutil.move("with.py","lll")        #移动文件
shutil.rmtree("lll")                     #删除文件夹
相关文章
相关标签/搜索