r:只读,读取文件,光标在文件初始位置
w:只写,写入文件,光标在文件初始位置,抹除原有内容(截断)
a:只写,写入文件,光标在文件末尾,新填内容
w+:读+写,写:抹除原有内容(截断),光标在文件初始位置。读:截断了,所以读取不到内容,写入内容之后,可以移动光标,再读取
r+:读+写,写:不抹除原有内容,光标在初始位置,写会抹除原有内容。读:读取文件,光标在文件初始位置
a+:读+写,写:不抹除原有内容,光标在文件末尾。读:读取文件,光标在文件末尾,所以读取不到内容,可以移动光标,再读取
x: 写,新建文件,不可以读取,文件存在会出错,上面的文件不存在会出错。
x+:读+写,新建文件,光标一直在最后,可以通过移动光标读取。
以上用于 open(filename,mod="",encoding="") 函数的mod
移动光标操作:
f.seek(offset,whence)
offset表示对于相对位置的偏移量,whence表示光标位置,012表示初始、当前和末尾
f.tell() 返回当前位置
JSON格式
JSON是“JavaScript Object Notation”的缩写,它本来是JavaScript语言中创建对象的一种字面量语法,现在已经被广泛的应用于跨平台跨语言的数据交换。
以前写脚本的时候,处理页面信息里的信息都是用re模块的match或者find的,就因为不会处理JSON文件,也没仔细看,切实处理JSON格式非常简单。
mydict = {
'name': '骆昊',
'age': 38,
'qq': 957658,
'friends': ['王大锤', '白元芳'],
'cars': [
{'brand': 'BYD', 'max_speed': 180},
{'brand': 'Audi', 'max_speed': 280},
{'brand': 'Benz', 'max_speed': 320}
]
}
mydict是python的一个字典对象,可以转换成JSON格式
{"name": "u9a86u660a", "age": 38, "qq": 957658, "friends": ["u738bu5927u9524", "u767du5143u82b3"], "cars": [{"brand": "BYD", "max_speed": 180}, {"brand": "Audi", "max_speed": 280}, {"brand": "Benz", "max_speed": 320}]}
sstr=json.dumps(mydict) #json.dumps()将字典对象转换成JSON格式对象
dicc = json.loads(sstr)#json.loads()将JSON格式字符串转换成python中相应的数据格式
json.dump(mydict,f)#将字典对象转换成JSON再保存到f打开的文件中
dicc=json.load(f) #从打开的文件中读取JSON对象转换成python中对应数据结构再返回
下面是相关数据结构对照:
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number (int / real) | int / float |
true / false | True / False |
null | None |
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str | string |
int, float, int- & float-derived Enums | number |
True / False | true / false |
None | null |