有没有办法改变我的命令来重新格式化我的输出文件?
Is there a way to alter my command to reformat my output file?
我制作了一个 blast 文件。我执行了 blast(x)
命令输出 "qeseqid"
和 "sseqid"
:
QRv313_NP342_d0_h2_l9 YN13213
QRv313_NP9080_d0_h1_l1 YN5345
QRv313_NP123_d0_h1_l7 YN756
QRv313_NP123_d0_h1_l113 YN9768
QRv313_NP654_d0_h2_l6 YN432
QRv313_NP8_d0_h1_l1 YN3242
QRv313_NP756_d0_h1_l2 YN85686
我在 command-line
中的 nano
中编写了一个命令以获得以下所需的输出:
NP342 YN13213
NP9080 YN5345
NP123 YN756
NP123 YN9768
NP654 YN432
NP8_d0 YN3242
NP756 YN85686
我编写了一个 nano
脚本来为我提供制表符分隔的查询列和主题 ID。我只是无法从这里前进。我不确定如何修改我的脚本以提供我想要的输出。
import sys
file_object = open(sys.argv[1])
for my_data in file_object:
list = my_data.split("\t")
print (list [0], list [1])
有没有办法改变我的命令,以便我可以收到所需的输出?
如有任何建议,我们将不胜感激!
你可以试试:
import sys
with open(sys.argv[1]) as file_object:
for my_data in file_object:
a_list = my_data.split('\t')
print(a_list[0].split('_')[1], a_list[1], sep='\t', end='')
list
是内置类型(不要将其用作名称)。上面的代码 split
在 \t
上添加你的数据,然后在 _
上添加第一个字段。然后打印由 \t
分隔的所需数据(包含 end=''
以避免打印第二个 newline
)。
我制作了一个 blast 文件。我执行了 blast(x)
命令输出 "qeseqid"
和 "sseqid"
:
QRv313_NP342_d0_h2_l9 YN13213
QRv313_NP9080_d0_h1_l1 YN5345
QRv313_NP123_d0_h1_l7 YN756
QRv313_NP123_d0_h1_l113 YN9768
QRv313_NP654_d0_h2_l6 YN432
QRv313_NP8_d0_h1_l1 YN3242
QRv313_NP756_d0_h1_l2 YN85686
我在 command-line
中的 nano
中编写了一个命令以获得以下所需的输出:
NP342 YN13213
NP9080 YN5345
NP123 YN756
NP123 YN9768
NP654 YN432
NP8_d0 YN3242
NP756 YN85686
我编写了一个 nano
脚本来为我提供制表符分隔的查询列和主题 ID。我只是无法从这里前进。我不确定如何修改我的脚本以提供我想要的输出。
import sys
file_object = open(sys.argv[1])
for my_data in file_object:
list = my_data.split("\t")
print (list [0], list [1])
有没有办法改变我的命令,以便我可以收到所需的输出?
如有任何建议,我们将不胜感激!
你可以试试:
import sys
with open(sys.argv[1]) as file_object:
for my_data in file_object:
a_list = my_data.split('\t')
print(a_list[0].split('_')[1], a_list[1], sep='\t', end='')
list
是内置类型(不要将其用作名称)。上面的代码 split
在 \t
上添加你的数据,然后在 _
上添加第一个字段。然后打印由 \t
分隔的所需数据(包含 end=''
以避免打印第二个 newline
)。