new_dat_file="14689_bondlength.prmfrm.dat"
new_csv_file="14689_bondlength.prmfrm.csv"
perl -p -e 's/\\t\s+|\s+/,/g' $new_dat_file |perl -p -e 's/,FRAM/\\nFRAM/g' > $new_csv_file
以上代码在Linux中工作。我在Python脚本中改进了它们。如果我使用下面的命令
import os
new_dat_file="14689_bondlength.prmfrm.dat"
new_csv_file="14689_bondlength.prmfrm.csv"
cmd = "perl -p -e 's/\\t\s+|\s+/,/g' " + new_dat_file + " |perl -p -e 's/,FRAM/\\nFRAM/g'
os.system(cmd)
我能正确地看到输出。但是,如果我像下面这样修改cmd值以将输出保存到csv文件中,但是我得到了一个空文件。
cmd = "perl -p -e 's/\\t\s+|\s+/,/g' " + new_dat_file + " |perl -p -e 's/,FRAM/\\nFRAM/g' > " + new_csv_file
顺便说一下:下面列出了部分数据
FRAM_# 0 0(fs) CN= 1 PRMRYTGT 14689 H 15449 O 1.008
FRAM_# 100 25(fs) CN= 1 PRMRYTGT 14689 H 15449 O 0.955
FRAM_# 200 50(fs) CN= 1 PRMRYTGT 14689 H 15449 O 0.993
FRAM_# 300 75(fs) CN= 1 PRMRYTGT 14689 H 15449 O 0.973
FRAM_# 400 100(fs) CN= 1 PRMRYTGT 14689 H 15449 O 0.988
FRAM_# 500 125(fs) CN= 1 PRMRYTGT 14689 H 15449 O 1.033
FRAM_# 600 150(fs) CN= 1 PRMRYTGT 14689 H 15449 O 1.032
FRAM_# 700 175(fs) CN= 1 PRMRYTGT 14689 H 15449 O 0.986
FRAM_# 800 200(fs) CN= 1 PRMRYTGT 14689 H 15449 O 1.061
FRAM_# 900 225(fs) CN= 1 PRMRYTGT 14689 H 15449 O 1.078
FRAM_# 1000 250(fs) CN= 1 PRMRYTGT 14689 H 15449 O 0.922
FRAM_# 1100 275(fs) CN= 2 PRMRYTGT 14689 H 17402 O 1.257 15449 O 1.430
FRAM_# 303200 75800(fs) CN= 0 PRMRYTGT_BD 14689 H
FRAM_# 921200 230300(fs) CN= 1 PRMRYTGT_BD 14689 H 8375 O 1.062
FRAM_# 1078700 269675(fs) CN= 1 PRMRYTGT_BD 14689 H 12971 O 1.507
FRAM_# 18203400 4550850(fs) CN= 1 PRMRYTGT_BD 14689 H 16172 O 1.507
我希望得到如下输出:
FRAM_#,0,0(fs),CN=,1,PRMRYTGT,14689,H,15449,O,1.008
FRAM_#,100,25(fs),CN=,1,PRMRYTGT,14689,H,15449,O,0.955
FRAM_#,200,50(fs),CN=,1,PRMRYTGT,14689,H,15449,O,0.993
FRAM_#,300,75(fs),CN=,1,PRMRYTGT,14689,H,15449,O,0.973
FRAM_#,400,100(fs),CN=,1,PRMRYTGT,14689,H,15449,O,0.988
FRAM_#,500,125(fs),CN=,1,PRMRYTGT,14689,H,15449,O,1.033
FRAM_#,600,150(fs),CN=,1,PRMRYTGT,14689,H,15449,O,1.032
FRAM_#,700,175(fs),CN=,1,PRMRYTGT,14689,H,15449,O,0.986
FRAM_#,800,200(fs),CN=,1,PRMRYTGT,14689,H,15449,O,1.061
FRAM_#,900,225(fs),CN=,1,PRMRYTGT,14689,H,15449,O,1.078
FRAM_#,1000,250(fs),CN=,1,PRMRYTGT,14689,H,15449,O,0.922
FRAM_#,1100,275(fs),CN=,2,PRMRYTGT,14689,H,17402,O,1.257,15449,O,1.430