虽然python中的字符串循环不符合预期

时间:2017-09-26 05:17:04

标签: python

我是Python的新手,我正在学习循环和条件。我有代码:

import random
import sys
import os

test_file = open("test.txt", "wb") #use wb if write

append = ""
while append != "exit":
    print("Write something to append to file: ")
    append = sys.stdin.readline()
    test_file.write(bytes(append, 'UTF-8'))

test_file.close()

现在,每当我输入'exit'时,我都希望它退出循环,但由于某种原因,它不会。它仍然是一个看似无限循环的东西。它背后的原因是什么?提前谢谢。

3 个答案:

答案 0 :(得分:2)

readline()包含\n换行符。

您可以使用append.strip()

In [1]: import sys

In [2]: append = sys.stdin.readline()
test

In [3]: append
Out[3]: 'test\n'

In [4]: append.strip()
Out[4]: 'test'

或者你可以像这样写

with open("test.txt", "w") as test_file:
    while True:
        print("Write something to append to file: ")
        append = input()
        if len(append) == 0 or input.strip() == "exit":
            break   
        test_file.write(append)

答案 1 :(得分:1)

将条件更改为CHLAUTH TYPE(SSLPEERMAP)并执行。它对我有用。

答案 2 :(得分:0)

尝试打印append以确切了解它是什么,或使用append = str(sys.stdin.readline())