如何在Python中删除文本中的最后一个换行符?

时间:2016-05-03 14:50:27

标签: python newline strip blank-line

我有一个解码凯撒密码的程序和一些包含多行代码的文本文件。

根据我的讲师代码检查器,文本后面总是有一个空白行,但是当我自己运行代码时,我什么都看不到。

删除最后一个字符只会删除文本中的最后一个字母或数字,而不会删除换行符。

这是我的代码:

import sys
import string
import collections

ciphertext_lines = sys.stdin.readlines()
ciphertext = ''

for i in ciphertext_lines:
    ciphertext += i

alphanum = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'



def getShiftVal():

    string = ''

    for line in ciphertext:
        string = string + line

    most_common_letter = ((collections.Counter(string).most_common(2)[1])[0])

    shift_val = (alphanum.index(most_common_letter) - 4)

    return shift_val



def decrypt(ciphertext, n):

    alphabet_numbers = collections.deque(string.ascii_uppercase + string.digits)

    alphanum = ''.join(list(alphabet_numbers))

    alphabet_numbers.rotate(n)

    alphanum_rotated = ''.join(list(alphabet_numbers))

    return ciphertext.translate(str.maketrans(alphanum, alphanum_rotated))



def main():

    n = getShiftVal()

    decrypted = decrypt(ciphertext, n)

    print(decrypted)

if __name__ == '__main__':
    main()

1 个答案:

答案 0 :(得分:1)

print默认情况下会在输出后添加换行符。在Python 2下,使用print decrypted,(注意尾随逗号)来抑制尾随换行符。在Python 3下,使用print(decrypted, end='')。或者,您也可以使用sys.stdout.write(decrypted)来编写输出而不进行任何格式化。