我有一个看起来像这样的文件:
scaf12446 275 482 loc.04759 . + 9.99087136654
scaf9003 58436 58745 loc.36424 . + 9.98867551051e-07
scaf6164 41519 44781 loc.29229 . - 9.97790659076e-07
scaf20 64796 100635 loc.14273 . - 9.97726500173
scaf19280 12335 12568 loc.13668 . + 9.95702976886
scaf8877 30882 32362 loc.36113 . - 9.94423702955e-08
我想从第二列减去第三列并打印出值。因此,结果文件应如下所示:
scaf12446 207 loc.04759 . + 9.99087136654
scaf9003 309 loc.36424 . + 9.98867551051e-07
scaf6164 3262 loc.29229 . - 9.97790659076e-07
scaf20 35839 loc.14273 . - 9.97726500173
scaf19280 233 loc.13668 . + 9.95702976886
scaf8877 1480 loc.36113 . - 9.94423702955e-
该表很长-是否有简单的方法从第2列中减去第3列? linux快捷方式将是理想的选择。
参考方案
使用python和pandas
#! /usr/bin/env python3
"""
sub_col.py
Call as
$ python sub_col.py file
"""
import sys
import pandas as pd
def main(file):
df = pd.read_csv(file, delim_whitespace=True, header=None)
df[2] -= df[1]
del df[1]
df.to_csv(file, header=False, index=False, sep='\t')
if __name__ == '__main__':
main(sys.argv[1])
输出数据帧:
scaf12446 207 loc.04759 . + 9.990871366539999
scaf9003 309 loc.36424 . + 9.98867551051e-07
scaf6164 3262 loc.29229 . - 9.97790659076e-07
scaf20 35839 loc.14273 . - 9.97726500173
scaf19280 233 loc.13668 . + 9.95702976886
scaf8877 1480 loc.36113 . - 9.944237029550001e-08
如何从python向终端(linux)发送多个命令? - python我想向Linux终端发送命令以运行python脚本。我有一个要运行的python文件列表,当我们顺序阅读该列表时,我想一个接一个地运行它们。第一个文件完成后,应发送第二个文件以运行,依此类推。 参考方案 您可以使用以下命令顺序运行脚本:python script1.py && python script2.py && pyth…
Python sqlite3数据库已锁定 - python我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…
在当前目录下编写一个脚本,生成多个目录,创建空文件,然后列出所有文件。 - pythonClosed. This question needs details or clarity。它当前不接受答案。 …
Shell脚本如何从自身内部执行另一个Shell脚本 - python我的问题是,shell脚本如何执行在新进程中生成的另一个shell脚本?还是在与调用它的脚本相同的过程中执行?一个示例是一个Python脚本,该脚本在满足条件后从Shell脚本执行,还有人如何编写此Shell脚本,使其生成Python脚本,然后退出自身而不会杀死Python脚本 python大神给出的解决方案 是的,如果您在外壳程序中调用外壳程序脚本,外壳程…
如何将python文件转换为linux可执行文件 - python我使用python 2.7,我想知道如何将python代码更改为linux可执行文件,这与使用gcc -o hello hello.c非常相似,但使用python 参考方案 您通常不会。而是在文件中添加一个所谓的shebang,然后更改标志以使其可执行。所以第一行应该是这样的#!/usr/bin…