111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
#!/usr/bin/python3采用了绝对路径的写法,即指定了采用/usr/bin/python3该路径下的解释器来执行脚本。如果python3解释器不在该路径下的话(用anaconda安装的话有可能不在),./script.py 就无法运行。
而 #!/usr/bin/env python3 的写法指定从PATH环境变量中查找python解释器的位置,因此只要环境变量中存在,该脚本即可执行。所以一般情况下采用 #!/usr/bin/env python3 的写法更好,容错率更高。
2222222222222222222222222222222222222222222222222222222222222222222222222222222
文件的读写操作
import os
def read_file_info(file):
if os.access(file, os.R_OK) == False:
raise Exception ----------------------------------------------------抛出异常
fd = os.open(file, os.O_RDONLY)
ret = os.read(fd, 600)
os.close(fd)
return ret
def write_file_info(file, date):
fd = os.open(file, os.O_RDWR|os.O_CREAT)
ret = os.write(fd, date)
os.close(fd)
return 0
3333333333333333333333333333333333333333333333333333333333333333333333333333333
debug打印信息
import sys
import time
def debug(string):
try:
raise Exception
except:
f = sys.exc_info()[2].tb_frame.f_back
date = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
file = f.f_code.co_filename[f.f_code.co_filename.rfind('/') + 1:]
func = f.f_code.co_name
line = f.f_lineno
print('\033[1;31;40m%s, %s, %s, %d \033[0m: %s ' % (date, file, func, line, string))
return
444444444444444444444444444444444444444444444444444444444444444444444444444444
getopt传参
import getopt
import sys
opts,args = getopt.getopt(sys.argv[1:],'-h-f:-v',['help','filename=','version'])
print(opts)
for opt_name,opt_value in opts:
if opt_name in ('-h','--help'):
print("[*] Help info")
sys.exit()
if opt_name in ('-v','--version'):
print("[*] Version is 0.01 ")
sys.exit()
if opt_name in ('-f','--filename'):
fileName = opt_value
print("[*] Filename is ",fileName)
# do something
sys.exit()