info={
'name':'hanbinlong',
'age':'21'
}
f=open('文件','w' )
f.write(str(info))#把字典info以字符串的形式存进去
f.close()
import pickle
def a(name):
print('hellow',name)
info={
'name':'hanbinlong',
'age':'21',
'func':a#func英语意思是功能
}
f=open('文件','wb' )
print()
f.write(pickle.dumps(info))#相当于pickle .dump(info,f)
#f.write(json)#把字典info以字符串的形式存进去
f.close()
以上是序列化;(pickle只有在python中认识 json在所有中都认识,这两个的用法一样)以下是反序列化
import pickle
def sayhi(name):
print("hello2,",name)
f = open("test.text","rb")
data = pickle.load(f) #data = pickle.loads(f.read())
print(data["func"]("Alex"))
import json
def sayhi(name):
print("hello,",name)
info = {
'name':'alex',
'age':22,
}
f = open("test.text","w")
f.write( json.dumps( info) )
info['age'] = 21
f.write( json.dumps( info) )
f.close()
相当于存了两个字典(可以dumps很多次,但是只能load一次 否则就会出错 下面是出错的程序(语法没错误))
import json
f = open("test.text","r")
data = json.loads(f.read()) #data = pickle.loads(f.read())
Foo/
|-- bin/
| |-- foo
|
|-- foo/
| |-- tests/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
|
|-- docs/
| |-- conf.py
| |-- abc.rst
|
|-- setup.py
|-- requirements.txt
|-- README
简要解释一下:
bin/
: 存放项目的一些可执行文件,当然你可以起名script/
之类的也行。foo/
: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/
存放单元测试代码; (3) 程序的入口最好命名为main.py
。docs/
: 存放一些文档。setup.py
: 安装、部署、打包的脚本。requirements.txt
: 存放软件依赖的外部Python包列表。README
: 项目说明文件。
关于README的内容
这个我觉得是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。
它需要说明以下几个事项:
- 软件定位,软件的基本功能。
- 运行代码的方法: 安装环境、启动命令等。
- 简要的使用说明。
- 代码目录结构说明,更详细点可以说明软件的基本原理。
- 常见问题说明。
import os
import sys
BASE_DIR = os.path.dirname( os.path.dirname( os.path.abspath(__file__) ) )
sys.path.append(BASE_DIR)
from conf import settings
from core import main
main.login()