python模块=perl模板=R包,别人写好的脚本程序,直接使用。你也可以自己写一个,后续学习。
pip install numpy 下载安装python包(一个命令行命令)
import numpy 导入numpy包(在python脚本或python交互界面中使用)
import numpy as np 导入numpy包,并重新命名为np
在linux下,生成一个空白文件,命名为test.py(touch test.py)。使用vim进行编辑
这个文件最上面一行,通常是#!/usr/bin/python3,用于指定python解析器的位置。
情况一:
使用chmod 775 test.py,修改文件权限,使其可执行。如果这时,使用./test.py,则是使用这一行指定的解析器
情况二:
不修改文件权限,使用home/zhaohuiyao/miniconda3/bin/python3 ./test.py,则是使用命令前面指定解析器,与文件内指定无关
** 直接上例子,这是一个通用模板,你的所有python脚本都可以这样写 **
touch test.py
vim编辑
#!/usr/bin/python3
#一个python测试脚本
import argparse #导入模块
#将在该脚本帮助文档中显示,该python脚本撰写人和邮件
__author__='zhao huiyao'
__mail__='zhaohuiyao@snnu.edu.cn'
def main():
parser=argparse.ArgumentParser(description='a python test script',formatter_class=argparse.RawDescriptionHelpFormatter,epilog='author:\t{0}\nmail:\t{1}'.format(__author__,__mail__))
parser.add_argument('-i','--input',help='input a fa file',type=argparse.FileType('r'),dest='input',required=True)
parser.add_argument('-o','--output',help='output directory',required=True)
args=parser.parse_args()
print(args)
print(args.input);print(args.output)
#调用主函数
if __name__ == '__main__':
main()
chmod 775 ./test.py
./test.py -h
./test.py -i test.fa -o ./
** 直接上例子 **
#!/usr/bin/python3 #python的位置
import os
file_name = os.path.basename(__file__) #python脚本文件名字
pydir = os.path.dirname(__file__) #python脚本文件相对路径,提供不同,则不同,一般直接取绝对路径
filedir = os.path.abspath(__file__) #python脚本文件绝对路径
bindir = os.path.abspath(os.path.dirname(__file__)) #python所在目录绝对路径
print ('python脚本调用', __file__) #调用python脚本文件是给的路径
print ('python脚本名字', file_name);print ('python脚本相对路径', pydir);print ('python脚本绝对路径', filedir);print ('python所在目录绝对路径', bindir)
time.sleep(),表示实现程序的延时。time.sleep(0.02):延时20毫秒。再运行下面的内筒
import sys
import os
import time
def std( level, message ):
now_time = time.strftime("%Y-%m-%d %H:%M:%S")
string = '{0} - {1} - {2} - {3}\n'.format( now_time, file_name, level, message ) #一定格式的string
if level == 'ERROR':
sys.stderr.write( string ) #输出报错的string
else:
sys.stdout.write( string ) #输出正确的string
#判断文件或目录是否存在
def file_exists( file_or_dir ) :
target = os.path.abspath( file_or_dir )
if not os.path.exists( target ) :
std( 'ERROR', '{0} is not exists , program EXIT'.format( target ) )
sys.exit(0) #直接终止python脚本运行
else :
std( 'INFO', '{0} is exists'.format( target) )
return target
def main():
file_exists('/home/zhhuiyao/test/python/gc.py') #已知该文件存在
if __name__ == '__main__':
main()
#执行:/usr/bin/python3 ../python/test.py
#输出:2022-04-25 18:22:18 - test.py - INFO - /home/zhaohuiyao/test/python/gc.py is exists
前面例子中就在自定义main主函数。
def 函数名(参数1,参数2,参数3,······):
函数体
return 变量1,变量2,······
情况一:
使用return指定函数返回值。例如
def sum(a,b):
c=a+b
return c
result=sum(1,2) 得到结果result=3
def sum(a,b):
c=a+b
d=a-b
return c.d
result=sum(1,2) 得到结果result[0]=3;result[1]=-1
情况二:
没有使用return函数,则不返回任何结果,但是函数体会运行,如果有文件生成之类,则会完成。;例如
def sum(a,b,file):
c=a+b
out1=open(file, ‘w’)
out1.write(“第一个数={};第二个数={};两数之和={}\n”.format( a,b,c))
out1.close()
sum(1,2,“/home/zhaohuiyao/Bioscript/test.txt”)
#会生成文件/home/zhaohuiyao/Bioscript/test.txt