将文本文件重写为一个文本文件+每次都转到该行

时间:2013-05-23 21:56:00

标签: python-2.7

我正在尝试从名为“sobelPix [i] .txt”的一定数量的文本文件中获取数据,并将其重写在名为“newData.txt”的单个文本文件中。因此,来自一个“sobelPix”文件的所有数据应该是“newData”文件中的一行。

我的问题是,每次程序打印来自新的“sobelPix”文件的数据时,它不会转到行,而只是在相同的第一行上覆盖。所以,最终,我最终只得到了最后一个“sobelPix”文件中的数据。 我不知道如何遍历“newData”文件的行,因为它被认为是一个空文件......

你能帮助我吗? 谢谢!

我的代码:

    i = 0
    while not (i == 2):
        o = open("sobelPix" + str(i) + ".txt", "r")
        l = open("newData.txt", "w+")
            num = 0
        lines = o.readlines()

        print("sobelPix" + str(i) + ".txt")

        for line in lines:  
            r, g, b = map(int, line.split())    
            l.write(str(num) + ":"+ str((r+g+b)//3) + "  ")
            num += 1

        #pb: it's never going to the line
        #l.write("\n")  

        i += 1  

1 个答案:

答案 0 :(得分:0)

我认为Jackopo说得对,你打开newData.txt文件多次没有关闭它。尝试这样的事情(未经测试):

i = 0

l = open("newData.txt", "w+")

while (i < 2):
    o = open("sobelPix" + str(i) + ".txt", "r")

    num = 0
    lines = o.readlines()

    print("sobelPix" + str(i) + ".txt")

    for line in lines:  
        r, g, b = map(int, line.split())    
        l.write(str(num) + ":"+ str((r+g+b)//3) + "  ")
        num += 1

    #pb: it's never going to the line
    #l.write("\n")  

    o.close()
    i += 1 

l.close()