如何在python文本文件中的每一行中增加字符串中的数字?

时间:2019-03-15 19:00:44

标签: python for-loop

我有要在bash脚本中运行500次的代码(尽管目前我一直坚持要在bash中针对自己想要的内容进行for循环,所以我想我可以通过python自动制作更大的bash脚本) 。但是,我希望其中一部分随着500次迭代的进行更改-我有一个文件“ individual1”,该文件需要随每一行增加(因此,individual1,individual2,individual3等)

目前在python中,我已经简单地完成了:

x  = 'plink --bed chr${ID}.bed --bim chr${ID}.bim --fam chr${ID}.fam --extract snps.txt
--recode vcf-iid --out output${indiv}chr${ID}vcf --keep-fam individual1.txt'

text = ((x+'\n')*500)    

f = open("bash.txt", "r")
out = open("outfile.bg", "w")
for line in f:
    out.write("DBPH" + 1)
out.close()
print(text)
f.close()

尽管我知道此for循环根本不正确,但是从尝试从此处的类似问题中学习之后,我仍然不确定下一步该如何获取它。

文本文件中的输出如下所示:

plink --bed chr${ID}.bed --bim chr${ID}.bim --fam chr${ID}.fam --extract snps.txt
--recode vcf-iid --out output${indiv}chr${ID}vcf --keep-fam individual1.txt

plink --bed chr${ID}.bed --bim chr${ID}.bim --fam chr${ID}.fam --extract snps.txt
--recode vcf-iid --out output${indiv}chr${ID}vcf --keep-fam individual2.txt

所以我得到了personal1,individual2等。任何帮助/指导将不胜感激。

1 个答案:

答案 0 :(得分:1)

这是一个小脚本,用于在运行脚本的目录中输出该文件。

x  = 'plink --bed chr${ID}.bed --bim chr${ID}.bim --fam chr${ID}.fam --extract snps.txt --recode vcf-iid --out output${indiv}chr${ID}vcf --keep-fam '

times_written = 1

out = open("outfile.bg", "w")
while times_written - 1 < 500:
    out.write(F"{x}individual{times_written}.txt\n")
    times_written += 1
out.close()

此块将产生如下输出:

plink --bed chr${ID}.bed --bim chr${ID}.bim --fam chr${ID}.fam --extract snps.txt
--recode vcf-iid --out output${indiv}chr${ID}vcf --keep-fam individual1.txt
plink --bed chr${ID}.bed --bim chr${ID}.bim --fam chr${ID}.fam --extract snps.txt
--recode vcf-iid --out output${indiv}chr${ID}vcf --keep-fam individual2.txt

此代码将执行相同的操作,但中间有一个空格:

x  = 'plink --bed chr${ID}.bed --bim chr${ID}.bim --fam chr${ID}.fam --extract 
snps.txt --recode vcf-iid --out output${indiv}chr${ID}vcf --keep-fam '

times_written = 1

out = open("outfile.bg", "w")
while times_written - 1 < 500:
    out.write(F"{x}individual{times_written}.txt\n\n")
    times_written += 1
out.close()

这将产生如下输出:

plink --bed chr${ID}.bed --bim chr${ID}.bim --fam chr${ID}.fam --extract snps.txt
--recode vcf-iid --out output${indiv}chr${ID}vcf --keep-fam individual1.txt

plink --bed chr${ID}.bed --bim chr${ID}.bim --fam chr${ID}.fam --extract snps.txt
--recode vcf-iid --out output${indiv}chr${ID}vcf --keep-fam individual2.txt

编码愉快。另外,这里还有一个有关Python文件I / O https://www.tutorialspoint.com/python3/python_files_io.htm的有用信息的链接。