在C++中,我们可以通过在getline()函数中指定自己选择的分隔符来输入多行文本。然而,在Python中我无法做到这一点!它只有raw_input()和sys.stdin.readline()方法,这些方法只读取直到我按下回车键。是否有任何方法可以自定义这个过程以便我可以指定自己的分隔符?
您是否仍想按回车键创建多行文本?如何结束输入?或者您想在单行中指定多行文本?
如果是前者,请尝试循环使用raw_input(),直到输入某些内容告诉它停止:
lines = []
while True:
user_input = raw_input()
if user_input.strip() == "": # empty line signals stop
break
lines.append(user_input)
lines = raw_input().split(";")
import linecache
linecache模块允许您从任何文件中访问任何行。其三种方法中,您可能最常使用的是getline。getline的语法如下:
linecache.getline('filename', line_number)
retrieved_line = linecache.getline('myfile.txt', 138)
你可以简单地打印retrieved_line,或以其他方式操作第138行的数据,而无需对文件本身进行手术。
linecache.getline
读取文件时要小心,因为该模块会缓存读取的内容。如果文件可能在某个时间点被修改,则需要在获取行之前运行linecache.clearcache()
来清除缓存。 - Gabriel Cia你需要自己实现这样的函数。例如:
def getline(stream, delimiter="\n"):
def _gen():
while 1:
line = stream.readline()
if delimiter in line:
yield line[0:line.index(delimiter)]
break
else:
yield line
return "".join(_gen())
import sys
getline(sys.stdin, ".")