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('源路径',‘目标路径’)方法。
列出当前目录的所有目录:
[x for x in os.listdir('.') if os.path.isdir(x)]
列出所有的.py文件
[x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='py']