动态导入模块:
python 中不仅可以用过import 在开头导入其他模块, 可以通过代码动态导入模块,获取模块对象,从而调用其他模块的函数或者方法,
格式如下:
# import frame_name --->找frame_name.py
frame = __import__(frame_name) # 返回值标记这 导入的这个模板
app = getattr(frame, app_name) # 此时app就指向了 frame_name模块中的app_name这个函数
从命令行中传入参数:
运行python程序:python3 xxx.py , 这个后面是可以接一些参数的,并且通过代码可以获取这部分的参数值;通过sys模块中的 属性argv 可以获取参数的列表
读取配置文件:
在python程序中可以读取通过with open 来打开配置文件,在通过eval 函数将内容读取出来,如下:
with open("./web_server.conf") as f:
conf_info = eval(f.read())
# 此时 conf_info是一个字典里面的数据为:
# {
# "static_path":"./static",
# "dynamic_path":"./dynamic"
# }
Python 中的Json 模块
In [1]: import json
In [2]: json.load(open("1.config"))
Out[2]: {'a': '1', 'b': '2'}
In [3]: f = open("2.config")
In [4]: c = f.read()
In [5]: json.loads(c)
Out[5]: {'a': 1, 'b': 2}
In [6]: f.close()
In [9]: json.dump({"name":"laowang","age":"18"}, open("3.config","w"))
在其中主要使用的方法为json.loads和json.dumps
注意在loads中参数必须为string,从而在打开文件的时候,要使用read方法,否则会出错。
loads方法主要是用来加载json数据变成python中的对象,而dumps方法主要是将python对象修
改成json格式。
Python中读取文件大小
# f.seek(num, 0) # 相对文件起始位置偏移num个字节, 常用于将文件指针定位到起始位置
# f.seek(num, 1) # 相对于文件针当前位置偏移num个字节
# f.seek(num, 2) # 相对于文件末尾位置偏移num个字节
# seek函数说明:
# seek(p1, p2)
# 参数: p1 --> 相对偏移量, 整数, 文件以二进制打开可以为负数
# p2 --> 文件位置: 0 表示文件指针起始位置
#
1 表示文件指针的当前位置
#
2 表示文件末尾
tell() 函数 也可以读出文件大小
f = open("1.txt", "rb")
f.seek(5, 0) # 相对于文件起始位置偏移5个字节
print("读到的一个字节是: ", f.read(1)) # 读一个字节, 结果是 “f”
absolute_pos = f.tell() # 返回当前文件指针的绝对偏移位置
print("当前文件指针的绝对偏移位置是: %s" % absolute_pos)
f.seek(-6, 1) # 相对于当前文件指针位置, 偏移-6个字节(负数为向前偏移)
print("读到的一个字节是: ", f.read(1)) # 读一个字节, 结果是 “a”
f.seek(-5, 2) # 相对于文件末尾位置, 偏移-5个字节(负数为向前偏移)
print("读到的一个字节是: ", f.read(1)) # 读一个字节, 结果是 “4”
length = f.seek(0, 2) # 将文件指针设置到文件末尾, 该函数返回值是文件指针绝对偏移量(即是文件长度)
print("文件长度是: %d" % length)