Python. , . , , C Python. , ; Python Perl.
import sys
s_usage = """\
Usage: csplit <filename>
Splits input file by columns, writes column 2 to file based on chromosome from column 4."""
if len(sys.argv) != 2 or sys.argv[1] in ("-h", "--help", "/?"):
sys.stderr.write(s_usage + "\n")
sys.exit(1)
lst_pat = [
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y'
]
d = {}
for s_pat in lst_pat:
d[s_pat] = open("my_out_file_" + s_pat, "wt")
if False:
for i, s_pat in enumerate(lst_pat):
d[s_pat] = open("my_out_file_" + str(i), "wt")
for line in open(sys.argv[1]):
_, s_data, _, s_pat, _ = line.split()
d[s_pat].write(s_data + "\n")
for key in d:
d[key].close()
EDIT: , , .
. , Python " ", . , , , Python , , . "try/except", , , .
, , , . , . ( "_" - , Python , , .) Python , . , , ; :
for line in open(sys.argv[1]):
lst = line.split()
d[lst[3]].write(lst[1] + "\n")
, lst. , . , . Python , 0 , lst[1], - lst[3]. , .
, , , Python . . "try/except" :
for line in open(sys.argv[1]):
lst = line.split()
try:
d[lst[3]].write(lst[1] + "\n")
except KeyError:
sys.stderr.write("Warning: illegal line seen: " + line)
.
EDIT: @larelogio , AWK-. AWK , . Python, :
for line in open(sys.argv[1]):
lst = line.split()
n = int(lst[1])
for i in range(n, n+53):
d[lst[3]].write(i + "\n")
. , , .
for line in open(sys.argv[1]):
lst = line.split()
n = int(lst[1])
s = "\n".join(str(i) for i in range(n, n+53))
d[lst[3]].write(s + "\n")
, . .write() 53 .