一、json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads()。
1.json.dumps将一个Python数据结构转换为JSON:
import json
data = {
'name' : 'myname',
'age' : 100,
}
json_str = json.dumps(data)
json.dump(obj,f,ensure_ascii=False,indent=4,separators=(',',':'))
ensure_ascii表示的意思是是否要转为ASCII码,如果打开(默认打开True),那么转为json后中文会变成ASCII编码,如果关闭后中文还是中文,不会变为ASCII编码。indent表示 indent是缩进的意思
separators:分隔符,实际上是(item_separator, dict_separator)的一个元組,默认的就是(‘,’,’:’);这表示dictionary內keys之间用“,”隔开,而KEY和value之间用“:”隔开。
2.json.loads将一个JSON编码的字符串转换回一个Python数据结构:
data = json.loads(json_str)
3.json.dump() 和 json.load() 来编码和解码JSON数据,用于处理文件。
with open('test.json', 'w') as f:
json.dump(data, f)
with open('test.json', 'r') as f:
data = json.load(f)
二、 Python的标准库中的os模块包含普遍的操作系统功能。如果需要程序能够与平台无关的话,这个模块尤为重要。它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。os模块设计目录和文件等的操作。
os.path.dirname功能:去掉文件名,返回目录
os.path.join() 函数用于路径拼接文件路径,可以传入多个参数
sys.executable返回python解释器的路径
os.path.abspath:获取的当前执行脚本的完整路径
os.makedirs() 方法用于递归创建目录
path -- 需要递归创建的目录,可以是相对或者绝对路径。。
mode -- 权限模式。该方法没有返回值。
os.path.exists()就是判断括号里的文件是否存在的意思,括号内的可以是文件路径。
hasattr(object, name)
object – 对象。
name – 字符串,属性名。
# hasattr(sys,'frozen'):判断sys对象是否有'frozen'属性
os.path.dirname(file)返回脚本的路径,但是需要注意一下几点:
1、必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name ‘file’ is not defined
2、在运行的时候如果输入完整的执行的路径,则返回.py文件的全路径如:
python c:/test/test.py 则返回路径 c:/test ,如果是python test.py 则返回空
3、结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合
os.path.dirname(os.path.abspath(file)),os.path.abspath(file)返回的是.py文件的绝对路径
这就是os.path.dirname(file)的用法,其主要总结起来有:
1、不要已命令行的形式来进行os.path.dirname(file)这种形式来使用这个函数
2、结合os.path.abspath()使用