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

我有一个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