一个Python脚本,它将反转txt文件中的字符并将它们放在一个新文件中

时间:2017-12-26 12:15:31

标签: python

我正在尝试编写一个Python脚本,它将反转txt文件中的字符并将它们放在一个新文件中,但它总是省略字符的第一行并将最后两行连接在一起。怎么了?提前谢谢^^

ManageProfilesAction

2 个答案:

答案 0 :(得分:2)

正如其他人提到的那样,你不小心读了第一行,但随后把它扔了,所以它永远不会到达你的反向弦。这应该是一个有效的解决方案:

def main():
    fp = open( "reverse", "w" )
    hello = open("correct")
    add = ""
    while True:
        text = hello.readline()
        for i in range(len(text)-1, -1, -1):
            add += str(text[i])
        if text == "":
            fp.writelines(add)
            break
    fp.close()
    fp = open("reverse")
    buffer = fp.read()
    fp.close()
    print( buffer )

if __name__ == '__main__':
    main()

但我也希望用Python向你展示一些很酷的东西。给定任何可迭代的(字符串,列表等),您可以非常容易地反转它。

l = [1, 2, 3]
print(l[::-1]) # prints [3, 2, 1]

所以你的整个程序只能用两行编写!

def main():
    with open('reverse', 'w') as r_fp, open('correct', 'r') as c_fp:
        r_fp.write(c_fp.read()[::-1])

if __name__ == '__main__':
    main()

答案 1 :(得分:1)

首先出现的错误是您读取第一行,进入循环,读取第二行,然后将变量text指向新行,丢失对第一行的引用。

第二个问题是你读到的最后一行可能不会以换行符\n结束,所以当你向后写它时,它会与前一行结合。

另请注意,with使用index.html来处理文件对象