一次又一次地编辑 python 个脚本文件
editing python script file again and again
您好,我想检查氨基酸序列的分值,为此我编写了以下代码,效果非常好。但问题是每次我都必须编辑文件。有什么办法可以从命令界面给出氨基酸序列吗?
AA_seq='AVTLSPQRS' # this is the input variable
sum=0
value={"V": 3.1,"Y":3.5,"W":4.7,"T" :5.3,"S":5.1,"P":3.7,
"F":4.7,"M":1.5,"K":8.9,"L":6,"I":4.3,"H":3.3,"G":7.1,
"E":7,"Q":5.4,"C":0.6,"D":7.6,"N":6,"R":8.7,"A":3.4}
print("Total length of sequence is:", len(AA_seq))
for i in AA_seq:
sum+=value[i]
print("Total Score is :", sum)
如果我理解你的问题,你可以使用 python 的 'input' 功能来解决它。
这将使您能够从 CLI 提供输入。下面是修改代码。
希望对您有所帮助。
另外,如果你想避免 small/caps hedache 输入,你可以使用 .upper().
虽然这个问题不需要。
AA_seq=input("write Amino Acid Sequence:" )
AA_seq=AA_seq.upper()
sum=0
value={"V": 3.1,"Y":3.5,"W":4.7,"T" :5.3,"S":5.1,"P":3.7,
"F":4.7,"M":1.5,"K":8.9,"L":6,"I":4.3,"H":3.3,"G":7.1,
"E":7,"Q":5.4,"C":0.6,"D":7.6,"N":6,"R":8.7,"A":3.4}
print("Total length of sequence is:", len(AA_seq))
for i in AA_seq:
sum+=value[i]
print("Total Score is :", sum)
您可以从 sys.argv
中的命令行轻松访问字符串参数。 (由于历史原因,sys.argv[0]
包含脚本本身的名称,因此请忽略它。)
import sys
value={"V": 3.1, "Y": 3.5, "W": 4.7, "T": 5.3, "S": 5.1,
"P": 3.7, "F": 4.7, "M": 1.5, "K": 8.9, "L": 6, "I": 4.3,
"H": 3.3, "G": 7.1, "E": 7, "Q": 5.4, "C": 0.6, "D": 7.6,
"N": 6, "R": 8.7, "A": 3.4}
for AA_seq in sys.argv[1:]:
print("Total length of sequence", AA_seq, "is:", len(AA_seq))
total = 0
for i in AA_seq:
total += value[i]
print(AA_seq, "Total Score is :", total)
您会注意到我添加了一个循环,因此您可以根据需要在一个 运行 中处理多个序列。
用法:
python3 script.py 'AVTLSPQRS' 'KIIGAPEAR'
(如果这是您平台上 Python 3 可执行文件的名称,则只是 python
)。
接受来自命令行的输入使您能够使用 shell 的各种功能(制表符完成、历史记录、变量扩展等)以及从其他脚本以编程方式使用此脚本。
一个合适的工具可能也应该包括一些错误处理(基本上检查是否有参数,如果没有则显示错误)但这应该已经让你开始了。此外,如果输入字符串包含不在 value
散列中的符号,则可能会捕获 KeyError
,这样你就不会得到回溯。
您好,我想检查氨基酸序列的分值,为此我编写了以下代码,效果非常好。但问题是每次我都必须编辑文件。有什么办法可以从命令界面给出氨基酸序列吗?
AA_seq='AVTLSPQRS' # this is the input variable
sum=0
value={"V": 3.1,"Y":3.5,"W":4.7,"T" :5.3,"S":5.1,"P":3.7,
"F":4.7,"M":1.5,"K":8.9,"L":6,"I":4.3,"H":3.3,"G":7.1,
"E":7,"Q":5.4,"C":0.6,"D":7.6,"N":6,"R":8.7,"A":3.4}
print("Total length of sequence is:", len(AA_seq))
for i in AA_seq:
sum+=value[i]
print("Total Score is :", sum)
如果我理解你的问题,你可以使用 python 的 'input' 功能来解决它。 这将使您能够从 CLI 提供输入。下面是修改代码。
希望对您有所帮助。 另外,如果你想避免 small/caps hedache 输入,你可以使用 .upper().
虽然这个问题不需要。
AA_seq=input("write Amino Acid Sequence:" )
AA_seq=AA_seq.upper()
sum=0
value={"V": 3.1,"Y":3.5,"W":4.7,"T" :5.3,"S":5.1,"P":3.7,
"F":4.7,"M":1.5,"K":8.9,"L":6,"I":4.3,"H":3.3,"G":7.1,
"E":7,"Q":5.4,"C":0.6,"D":7.6,"N":6,"R":8.7,"A":3.4}
print("Total length of sequence is:", len(AA_seq))
for i in AA_seq:
sum+=value[i]
print("Total Score is :", sum)
您可以从 sys.argv
中的命令行轻松访问字符串参数。 (由于历史原因,sys.argv[0]
包含脚本本身的名称,因此请忽略它。)
import sys
value={"V": 3.1, "Y": 3.5, "W": 4.7, "T": 5.3, "S": 5.1,
"P": 3.7, "F": 4.7, "M": 1.5, "K": 8.9, "L": 6, "I": 4.3,
"H": 3.3, "G": 7.1, "E": 7, "Q": 5.4, "C": 0.6, "D": 7.6,
"N": 6, "R": 8.7, "A": 3.4}
for AA_seq in sys.argv[1:]:
print("Total length of sequence", AA_seq, "is:", len(AA_seq))
total = 0
for i in AA_seq:
total += value[i]
print(AA_seq, "Total Score is :", total)
您会注意到我添加了一个循环,因此您可以根据需要在一个 运行 中处理多个序列。
用法:
python3 script.py 'AVTLSPQRS' 'KIIGAPEAR'
(如果这是您平台上 Python 3 可执行文件的名称,则只是 python
)。
接受来自命令行的输入使您能够使用 shell 的各种功能(制表符完成、历史记录、变量扩展等)以及从其他脚本以编程方式使用此脚本。
一个合适的工具可能也应该包括一些错误处理(基本上检查是否有参数,如果没有则显示错误)但这应该已经让你开始了。此外,如果输入字符串包含不在 value
散列中的符号,则可能会捕获 KeyError
,这样你就不会得到回溯。