2017-07-31 60 views
1

有時,測試使用內嵌數據從文件中讀取數據的腳本(以便數據和代碼都在同一個文件中)會很方便。在bash這可以用一個heredoc來完成:用於數據輸入的類似bash的heredoc

while read l;do 
    echo $l 
done << EOF 
test 
test2 
test3 
EOF 

在一些實際的代碼有當然會從寫出線條更相隔發生什麼。假設我會做同樣的事情在python

def read_file(f): 
    for line in f.readlines(): 
     print(line.replace('\n','')) 

with open('input.txt') as f: 
    read_file(f) 

什麼是提供的input.txt的內容read_file()在線的最佳方式?

回答

2

您可以使用StringIO

from io import StringIO  

f = StringIO('''\ 
foo 
bar 
test 
''') 

read_file(f) 

上面的代碼可與Python3。在Python2中使用:

from StringIO import StringIO