StringIO和BytesIO

StringIO

内存中的读写,只能操作str

使用StringIO要先引入,并创建一个StringIO

from io import StringIO

getvalue()用于获得写入后的str。

StringIO可以用str进行初始化,然后像IO一样进行读取(read)

 
   
f=StringIO('xxxx\nxxxx\nxxx')
f.read()  #IO的read方法这一都通用

BytesIO

内存中读取二进制

同样的要引入、创建、写、读取

 
   
from io import BytesIO
f=BytesIO()
f.write('中文'.encode('utf-8'))   #注意这里写入的不是str,而是经过utf-8编码后的bytes
f.read()

操作文件和目录

操作文件和目录的函数一部分放在os模块中,一部分放在os.path中

查看当前目录的绝对路径:

 
   
os.path.adspath('.')  #必须有'.'

在某个目录下创建新目录:

把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数,这样可以正确处理不同操作系统的路径分隔符。

 
   
os.path.join('/xx/xx','testdir')    #首先把新目录的完整路径表示出来
'/xx/xx/tesdir'
os.mkdir('/xx/xx/tesdir')           #再通过os.mkdir()创建
os.rmdir('/xx/xx/tesdir')           #删除目录

拆分路径时,不要直接去拆分字符串,而要通过os.path.split()函数,返回两部分,后一部分总是最后级别的路径或者文件名

路径的拆分和合并函数不要求路径是否正的存在,仅仅是对字符串的操作

os.path.splitext() 得到文件的扩展名

文件的重命名、删除操作要求确实存在这样一个文件。

 
   
os.rename('test','test.py')     #重命名
os.remove('test')               #删除文件

文件的复制函数不在os模块中,而在shutil模块中。为copyfile('源路径',‘目标路径’)方法。

  1. 列出当前目录的所有目录:

     
        
    [x for x in os.listdir('.') if os.path.isdir(x)]
  2. 列出所有的.py文件

     
        
    [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='py']

猜你喜欢

转载自blog.csdn.net/qq_26269815/article/details/80793762