IO操作
文件读写:
读:open(文件名,标识符),标识符:' r '(读)、' rb '(读取二进制文件)
写:open(文件名,标识符),标识符:' w '(写)、' wb '(写二进制文件)
read():可以一次读取文件的全部内容。
write():当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()
方法时,操作系统才保证把没有写入的数据全部写入磁盘。
close():关闭文件
内存读写:
StringIO:在内存中读写str。
BytesIO:在内存中读写bytes。
操作文件和目录:
操作文件和目录的函数一部分放在os
模块中,一部分放在os.path
模块中。
查看当前目录的绝对路径:
os.path.abspath('.')
在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:
os.path.join('/Users/michael', 'testdir'),
后创建一个目录:
os.mkdir('/Users/michael/testdir')
删掉一个目录:
os.rmdir('/Users/michael/testdir')
合并路径:os.path.join()
拆分路径:os.path.split()
序列化:把变量从内存中变成可存储或传输的过程。
序列化(pickling)之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。
反序列化(unpickling):把变量内容从序列化的对象重新读到内存里。
Python提供了pickle
模块来实现序列化。
pickle.dumps()
方法把任意对象序列化成一个bytes
pickle.dump()
直接把对象序列化后写入一个file-like Object
当我们要把对象从磁盘读到内存时,可以先把内容读到一个bytes
,然后用pickle.loads()
方法反序列化出对象,也可以直接用pickle.load()
方法从一个file-like Object
中直接反序列化出对象
JSON:一种标准格式,表示出来就是一个字符串,可以被所有语言读取,可以方便地存储到磁盘或者通过网络传输。
JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型对应如下:
JSON类型 | Python类型 |
---|---|
{} | dict |
[] | list |
"string" | str |
1234.56 | int或float |
true/false | True/False |
null | None |
Python内置的json
模块提供了非常完善的Python对象到JSON格式的转换。
dumps()
方法返回一个str
,内容就是标准的JSON。类似的,dump()
方法可以直接把JSON写入一个file-like Object
。
要把JSON反序列化为Python对象,用loads()
或者对应的load()
方法,前者把JSON的字符串反序列化,后者从file-like Object
中读取字符串并反序列化。