如何将前四行打印到文件中,然后将后四行打印到第二个文件中,依此类推?

我有一个fastq文件,其中所有序列都已堆积,这是配对末端测序的结果。我需要将它们分为两个文件,所有反向序列都在一个文件中,而正向文件在第二个文件中。因此,我需要读取前四行并将它们写入文件“ R”,然后读取后四行并将它们写入文件“ F”。之后,我需要以相同的方式阅读并保存以下几行。 我想到了这样的事情(如下),但是没有用。有什么帮助吗?请。

R = open("R.fastq","w+")
F = open("F.fastq","w+")

x = raw_input('type the name of the file you wanna split: ')   
with open (x, 'rt') as myfile:   
    for line in myfile:
        R.write (line)
        R.write (line)
        R.write (line)
        R.write (line)
        F.write (line)
        F.write (line)
        F.write (line)
        F.write (line)

R.close()
F.close()
评论
为你流泪
为你流泪

您的问题是,您在同一文件中两次写入同一行四次,对于循环中的每次迭代,程序都无法确定应将哪一行写入哪个文件。试试看这段代码,没有文件我无法测试,但是它的理论应该起作用。

请记住,这仅适用于8行长的文件。如果多于或少于8行,则R中有4行,F中有其余行。

R = open("R.fastq","w+") # open file R with write permissions
F = open("F.fastq","w+") #open file q with write permissions

x = raw_input('type the name of the file you wanna split: ')   #input file name
i = 0 #variable to increment, tracking which line you're at
with open (x, 'rt') as myfile:   #open input file with read permissions
    for line in myfile: # loop through file
        if i < 4: #first 4 lines (i = 0-3)
            R.write (line) #write to file R
        elif i > 4: #after 4th line (i=3) write second 4 lines to F (i=4-7)
            F.write (line) #write to file F

R.close() #close file R
F.close() #close file F
点赞
评论