python学习之IO:

输入输出兼程IO操作,有同步(速度不匹配时死等)和异步(轮询和消息通知,复杂而高效)

一 文件操作函数:

文件打开:f=open("带路径的文件名“,“操作类型 r/rb/w/a”,"编码”,“错误处理”),//中文的Windows系统上,默认使用cp936(就是gbk编码)

文件读写:f.read/f.write/f.read(size)/f.readline()/f.readlines();写内容到文件要变成字节串(编码),从文件中读出要将字节串解码成字符串;f.readlines()有换行符可将读出的用.splitlines()去除换行符;文件的写操作之后不会立即写到文件而是先缓冲碰到文件关闭或者f.flushs()时才会写进去。

文件关闭:f.close,用with方法可以避免我们忘记close文件;

PICKLE模块:pickle.dump(obj,filename),pickle.load(filename)

with语句:with open函数 as f

              f.read/wirte() #操作完自动关闭

二内存操作IO:

io.open("filename","操作类型“,“编码格式”)

StringIO:

>>> from io import StringIO
>>> f = StringIO('Hello! Hi! Goodbye!')

ByteSIO:

>>> from io import StringIO
>>> f = BytesIO(b'xe4xb8xadxe6x96x87')
>>> f.read()
b'xe4xb8xadxe6x96x87'

三:操作文件和目录:在OS模块和shutil模块提供了copyfile()的函数 import os,文件路径分隔符为/

3.1创建文件夹 os.mkdir(;文件夹路径‘,‘文件夹名’) 例如在当前文件夹下创建:os.mkdir('./work'),删除文件夹os.rmdir;

    切换文件夹到固定路径(只有将工作目录切换到指定的文件夹下,才可以将相关模块import进来):os.chdir("C:\Users\Michael\Documents\python\mypython")

    查看当前绝对路径:os.path.abspath('.')

    

  1. os.chdir("../..")#表示上两级目录  
  2. os.chadir("/")则表示切换到当前文件所在的根目录下

3.2分离路径和文件:os.path.split('文件夹路径‘),分离文件名和类型:os.path.splitext('文件夹路径‘)

   设置新文件的路径 os.path.join('文件夹路径‘,'文件名‘)

3.3创建文件:
  1) os.mknod("test.txt") 创建空文件
  2) open("test.txt",w)           直接打开一个文件,如果文件不存在则创建文件

3.4复制文件:
  shutil.copyfile("oldfile","newfile")       oldfile和newfile都只能是文件
  shutil.copy("oldfile","newfile")            oldfile只能是文件夹,newfile可以是文件,也可以是目标目录

   复制文件夹:
  shutil.copytree("olddir","newdir")        olddir和newdir都只能是目录,且newdir必须不存在

3.3文件重命名和删除、移动文件(目录):os.rename('test.txt', 'test.py') ;os.remove('test.py') ;shutil.move("oldpos","newpos")  

判断目标
os.path.exists("goal")    判断目标是否存在
os.path.isdir("goal")     判断目标是否目录
os.path.isfile("goal")    判断目标是否文件   

原文地址:https://www.cnblogs.com/jieruishu/p/6915643.html