在 C++ 中,我们可以通过在 getline() 函数中提供我们自己选择的分隔符来输入多行。但是我不能在 Python 中做同样的事情!它只有 raw_input() 和 sys.stdin.readline() 方法,直到我按下回车键。有什么方法可以自定义它以便我可以指定自己的分隔符?
问问题
20317 次
3 回答
3
是否仍要按 Enter 键创建多行?你如何结束输入?还是您想在一行上指定多行?
如果是前者,请尝试循环 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(";")
于 2010-06-11T12:32:12.197 回答
2
您可以尝试稍微修改此方法以使用它并在您的程序中使用它。
首先,导入 linecache 模块:
import linecache
linecache 模块允许您访问任何文件中的任何行。在它的三种方法中,您可能使用最多的一种是 getline。getline 的语法如下:
linecache.getline('filename', line_number)
如果您有一个名为“myfile.txt”的文件并想从中读取第 138 行,getline 可以让您轻松完成。
retrieved_line = linecache.getline('myfile.txt', 138)
然后,您可以简单地打印 retrieved_line 或以其他方式操作第 138 行的数据,而无需对文件本身进行手术。
于 2010-06-11T12:20:39.957 回答
0
您需要自己实现这样的功能。例如:
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, ".")
于 2010-06-11T13:01:36.723 回答