示例
Windows平台上,用Python处理Json文件
在json文件中记录程序的执行次数:
以读写模式打开文件;
每次读取文件、并将执行次数加一、写回文件。
import os
import json
#os.remove("test.json")
# remove the file if any
if not os.path.exists("test.json"):
# create an empty file if not found
print "creating test.json"
with open("test.json", "wb") as fp:
data = {"wanghuan": 0}
fp.write(json.dumps(data))
with open("test.json", "rb+") as fp:
# open with 'read and write' mode
data = fp.read()
data = json.loads(data)
data["wanghuan"] += 1
data = json.dumps(data)
fp.seek(0)
# Warning: back to the start of the file before write the whole file
fp.write(data)
fp.seek(0)
# Warning: back to the start before read the whole file
data = fp.read()
print data
1. 打开文件(以不同的模式)
open()
open(filename, mode)
open()返回一个文件对象。
第一个参数是一个含有文件名的字符串。
第二个参数也是一个字符串,含有描述如何使用该文件的几个字符。
mode为'r'时表示只是读取文件;w 表示只是写入文件(已经存在的同名文件将被删掉);
'a'表示打开文件进行追加,写入到文件中的任何数据将自动添加到末尾。
'r+'表示打开文件进行读取和写入。
mode 参数是可选的,默认为'r'。
Notes: 在 Windows 平台上,模式后面追加 'b'
在 Windows 平台上,模式后面追加 'b'表示以二进制方式打开文件,所以也有像'rb'、 'wb'和'r+b'这样的模式。Python 在Windows 平台上区分文本文件和二进制文件;读取或写入文本文件中时,行尾字符会被自动地稍加改变。这种修改对 ASCII文本文件没有问题,但会损坏JPEG或EXE这样的二进制文件中的数据。在读写这些文件时一定要记得以二进制模式打开。
在Unix平台上,在模式后面附加一个'b'也不会有坏处,这样你可以用写好的文件访问代码来读写任何平台上的所有二进制文件。
2. 删除文件
import os
os.remove()
3. 判断文件是否存在
import os
os.path.exists("test.json")