代码很短,所以我把它放在这里:
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
代码有效,但不是我想要的。它打印的换行符与任何其他文本一样,而不是实际的新行。
答案 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
个对象时处理的内容。