我正在尝试读取文本文件,打印其内容,并在到达"标记"时停止。
我的代码是:
import sys
sys.path.append("/Libraries/Documents")
file = open("readmepython.txt", "r")
while True:
x = file.readline()
if x != "break":
print(x)
else:
break
#doesnt work
有问题的文本文件只包含此内容,没有多余的空格或返回:
this is the ip
this is the /24
this is the gateway
this is the name server
break
循环将继续无限运行,我不确定如何正确分配变量以便正确检查。
从文本文件中读取时,python是否不分配原始字符串值?我在这里做错了什么?
答案 0 :(得分:1)
尝试类似的事情,
file = open("readmepython.txt", "r")
For line in file:
print line
或
file = open("readmepython.txt", "r")
For line in file.readlines():
print line
答案 1 :(得分:0)
虽然许多答案对我遇到的其他问题非常有帮助,但没有人明确回答这个问题。
我使用。{Mr.Mean's建议清除文本文档中返回的隐藏字符。 Another user向我展示.strip()(我应该知道的事情) ,它可以更好地剥离远离隐藏的角色。
当用Python阅读文本文档时,如果按下一个新行,则会出现一个看不见的
\n
在字符串的末尾,用单引号括起来' '
我最终使用.replace方法两次将字符串清除到我想要的内容。这也可以通过切片第一个字符和字符串的最后三个字符来完成。
我的新功能代码:
import sys
sys.path.append("/Libraries/Documents")
file = open("readmepython.txt", "r")
while True:
x = file.readline().strip
if x != "break":
print(x)
else:
break
#does work
除非有人另有建议,否则我最终会接受这个答案。
答案 2 :(得分:0)
import sys
sys.path.append("/Libraries/Documents")
file = open("readmepython.txt", "r")
while True:
x = file.readline().strip()
if x != "break":
print(x)
else:
break
答案 3 :(得分:-1)
您最好尝试以下方法:
可能sys.path.append
没有做你想要的(我不确定)。最好使用文件的完整路径作为开放函数的第一个参数。
file = open("Full Path of your file", 'r')
line = file.readline()
while line:
if line == 'break':
break
print line
line = file.readline()
如果在断线之后有换行符或其他字符,请注意是真的" break\n
"。在这种情况下,您应该运行此代码:
file = open("Full Path of your file", 'r')
line = file.readline()
while line:
if line == 'break'.replace('\n',''):
break
print line
line = file.readline()