如何从第一列中删除第二个和其余数字?
例如,
HP_000083.21423 N -1 NO 99.8951% 0.000524499999999983
NP_075561.1_1908 N -1 NO 99.9697% 0.000151499999999971
Run Code Online (Sandbox Code Playgroud)
我想从"NP_075561.1_1908"中删除"_1908"
和"1423来自"HP_000083.21423"
不从后续列中删除其他项目.
预期的行将是:
HP_000083.2 N -1 NO 99.8951% 0.000524499999999983
NP_075561.1 N -1 NO 99.9697% 0.000151499999999971
Run Code Online (Sandbox Code Playgroud)
这是我的代码:你们中的一些人过去曾提供过这个解决方案的一部分.
for line in fname:
line = re.sub('[\(\)\{\}\'\'\,<>]','', line)
line = re.sub(r"(\.\d+)_\d+", r"\1", line)
fields = line.rstrip("\n").split()
outfile.write('%s %s %s %s %s %s\n' % (fields[0],fields[1],fields[2],fields[3],fields[4],(fields[5])))
Run Code Online (Sandbox Code Playgroud)
先谢谢你们,干杯,
在这种情况下,我会避免使用正则表达式.您可以轻松地使用标准字符串方法:
for line in infile:
first_col, rest = line.split(" ", 1)
first_col = first_col[:first_col.index(".") + 2]
output_line = str.join(" ", (first_col, rest))
outfile.write(output_line)
Run Code Online (Sandbox Code Playgroud)