python笔记9--文件操作

# 文件操作

#打开,关闭文件(open,close)

#分路径,相对路径,绝对路径

#相对路径 9.文件操作.txt  在当前使用的路径下寻找改文件

#绝对路径 C:\Users\ASUS\Desktop\py笔记\9.文件操作.txt

#r 以只读方式打开,文件指针默认放在文件开头

#r+ 打开一个文件用于读写,指针放于开头

#w 以只写形式打开,文件存在则覆盖,不存在则创建

#w+ 打开一个文件用于读写,文件存在则覆盖,不存在则创建

#a  以追加形式打开文件,指针在文件结尾,不存在则创建新文件

#a+ 打开一个文件用于读写,指针在文件结尾,不存在则创建新文件

#后加b代表以二进制格式打开文件-》音频,图片,视频是以二进制方式打开的

#文本模式,是以str进行

## 方法

f.read() 读取指定大小的内容

f.readline() 读取一行内容

f.readlines() 读取多行内容

f.write(data) 写入内容

f.writelines(lines) 写入多行内容,需要自己加换行符

f.flush() 立即刷新缓冲

f.tell() 获得指针位置

f.seek(positon) 调整指针位置 0为初始位

a=r'C:\Users\ASUS\Desktop\py'

b=r'\9.文件操作.txt'

fp=open(a+b,'r')

print(fp.read())

fp.seek(1)#->调整指针位置

print(fp.readline())

print(fp.readlines())

fp.close()

fp=open(a+b,'w+')

fp.write('hello\nop')

## 文件存到内存当中 临时存放东西的 重启后内存中的数据消失不见

import  io

myio=io.StringIO()

myio.write('hello')

print(myio.getvalue())

print(myio.getvalue())#可重复读取数据

myio.close()#关闭,清除数据

# print(myio.getvalue())#关闭后无法读取

#二进制数据

myio=io.BytesIO()

myio.write('hello'.encode())

print(myio.getvalue())

## 上下文管理

with open(a+b,'r+') as f:#自动关闭文件

    # f.write('hello nihao')

    f.seek(0)

    print(f.read())

with open(a+b,'r+') as fp,\

    open(a+r'\o.txt','w+',encoding='utf-8') as  fp1:

          fp.write('nihao')

          fp1.write('hello')

          # fp.flush()

          fp.seek(0)

          print(fp.read())

          print(fp1.read())

__enter__和 __exit__

__enter__ 进入的时候自动调用 在使用with as内代码前调用

__exit__  退出的时候自动调用 with as里面的代码执行完后调用

class A:

    def __enter__(self):

        print("进入的时候自动调用 使用with as内代码")

        fp=open(a+r'\9.文件操作.txt','r')

        print(fp.read())

        return fp#with as 设定的指针

    def __exit__(self, exc_type, exc_val, exc_tb):

        print('退出的时候自动调用 with as 里面的代码执行完')

        fp.close()#这里的指针名对应with as的指针

# H=A()

with A() as fp:

    print(1111)

## 两个常用参数

#errors=ignore->忽略错误输出,出错忽略

#encoding=什么编码格式

# with open(a+r'\9.文件操作.txt','r',encoding='ASCII',errors='ignore') as f:

#    print(f.read())

## os 文件和目录(文件夹)

#import os

#print(os.getcwd())#显示当前路径

#print(os.listdir(r'C:\Users\ASUS\PycharmProjects\untitled2\venv'))#显示当前路径下的所有文件

#os.chdir()#改变当前路径

#os.mdikr(r'D:\aaa')#创建一个新文件夹aaa

#os.rmdir(r'D:\aaa')#删除该文件

#os.remove(r'文件地址')#删除指定路径下的文件

#os.rename('a.txt','aa.txt')#文件名替换

#解释器在Windows上面可以使用Windows命令,如果在linux上面就可以使用linux命令

#当我吗用open w的方式创建文件时,如果解释器在linux上 文件就在Linux上,本地不会有

#os.system()

### os.path模块

#os.path.join(r'C:\','wer\ty\op.txt')#路径拼接

#os.path.relpath(r'a.txt')#查相对路径

#os.path.abspath(r'a.txt')#查绝对路径

#os.path.isabs()#是否为绝对路径

你可能感兴趣的:(python笔记9--文件操作)