我不能让我的程序打印换行符 - Python

时间:2015-08-20 17:34:26

标签: python newline

代码很短,所以我把它放在这里:

prog = []
# Reading the database from a file
try:
    with open('prog.txt') as f:
        progA = f.read().splitlines()
    for n in range(len(progA)/2):
        num = n*2
        prog.append([progA[num],progA[num+1]])
except:
    print "Something went wrong"
ch = 1
while True:
    nR = True
    print prog[ch-1][0]
    # Getting input
    while nR:
        inp = raw_input(">>> ")
        try:
            inp = int(inp)
            if str(inp) in prog[ch-1][1]:
                ch = inp
                nR = False
            else:
                print "You can't move to that channel"
        except:
            print "That isn't a number"

文件的内容(prog.txt):

DATABASE\nBrowse by entering the number you see after the link.\n> VERSION (3)
23
VERSION\nThis is the latest version.\n> Main menu (1)
1

代码有效,但不是我想要的。它打印的换行符与任何其他文本一样,而不是实际的新行。

2 个答案:

答案 0 :(得分:1)

如果要在数据库文件中使用换行符,请使用通过 Enter 键创建的实际换行符。如果您的文件包含字符\后跟字符n,则这些字符将按字面解释。使用实际换行创建数据库文件,或者预处理它以使用\n替换文字.replace('\\n', '\n')和实际换行符。

答案 1 :(得分:0)

从文件中读取\n时,>>> print "foo\nbar" foo bar >>> print raw_input() foo\nbar foo\nbar 不会转换为真实换行符。比较

\n

str是Python在从字符串文字创建Faker::Shakespear个对象时处理的内容。