在C++中,我們可以通過在getline()函數中給我們自己的分隔字符選擇來輸入多行。但是我不能在Python中做同樣的事情!它只有raw_input()和sys.stdin.readline()方法可讀,直到我按下回車鍵。有沒有什麼方法來定製這個,以便我可以指定我自己的分隔符?python等價的C++ getline()
6
A
回答
2
你還想按回車來創建多行嗎?你如何結束投入?或者你想在一行上指定多行?
如果是前者,儘量循環的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(";")
1
您可以嘗試稍微修改此方法以使用它並在程序中使用它。
首先,導入linecache模塊:
import linecache
的linecache模塊允許您從任何文件訪問的任何行。在三種方法中,你可能使用最多的是getline。對於函數getline的語法如下:
linecache.getline('filename', line_number)
如果你有一個叫做「myfile.txt的」的文件,並想從中讀取線138,函數getline可以讓你輕鬆做到這一點。
retrieved_line = linecache.getline('myfile.txt', 138)
然後,您可以簡單地打印retrieve_line或以其他方式操作138行的數據,而無需對文件進行手術。
+0
thanx的烏拉圭回合的建議.. :-) – 2010-06-15 07:49:28
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, ".")
+0
這也是good..will看到我終於用哪一個.... – 2010-06-15 07:50:48
相關問題
- 1. C#等價於python的struct.pack
- 2. C++等價於Python的doctests?
- 3. C#等價於Python的os.path.exists()?
- 4. 不會等待getline C++
- 5. 'grep -C N'的Python等價物?
- 6. Python等價於C#的選擇?
- 7. C#等價的python maketrans和翻譯
- 8. Python的等價物@
- 9. Python的等價性?
- 10. C++等價的.split()
- 11. 等價於C++中的C++
- 12. C++/CLI等價的C#DateTime.Now.Ticks
- 13. Python等價物repr()?
- 14. Python等價於ignoreboth:erasedups
- 15. Ruby的等價的Python setattr()
- 16. simplexml_load_string等價的Python/Django的
- 17. Python的等價物__setitem__
- 18. Python等價於Mathematica的ArrayPlot?
- 19. PHP等價於Python的requests.get
- 20. Python的等價物find2perl
- 21. Python中的等價命令
- 22. Python等價於Mathematica的「LaguerreL」
- 23. python等價於ruby的__method__?
- 24. Python等價物的matlab corr2
- 25. python中的元組等價
- 26. python中的字符等價
- 27. Ruby等價於Python的DictWriter?
- 28. python等價於ruby的`map.with_index`?
- 29. 等價於python「dir」的Java?
- 30. Python中的inject()等價嗎?
這適合我的事業就好了.. :-) – 2010-06-15 07:50:05