2016-10-11 109 views
0

我有兩個python模塊:buildContent.py其中包含導致我想要的輸出的代碼。 buildRun.py我運行它爲了將輸出重定向到一個文件。使用另一個Python模塊將輸出打印到文件

我試圖輸出從buildContent.py保存到一個文件,我的確在buildRun.py是這樣的:

import buildContent 
import sys 

with open('out.xhtml', 'w') as f: 
    sys.stdout = f 
print buildContent 

我可以看到在控制檯但文件結果我的輸出是:

<module 'buildContent' from 'here's my path to the file'> 

該怎麼辦?

+1

你要打印的實際模塊。你想在'buildContent'中調用一個函數嗎?此刻你想做的事情就像做'import sys;打印sys'。 –

+0

這有點睜開我的眼睛...所以我把所有東西都包裹在一個函數中,然後在'buildRun'中調用它,它就可以工作!現在唯一的問題是我在輸出文件的最後一行輸出了'None'。 – dyb

+1

明白了......我不應該'打印'功能。只需調用它就足夠了。 – dyb

回答

1

重定向工作正常。 如果你用一個字符串替換你的打印語句,你會看到它有 工作。

該輸出的原因是您沒有調用buildcontent中的任何函數,只是導入它。

解決的辦法是從上面的print語句應該在的位置運行buildContent文件。

看到this question爲例

0

不是打印buildContent的,只是執​​行該模塊與所需的參數。不知道的buildContent內容,但像這樣的東西應該工作:

buildContent(data) 

這樣內部buildContent的代碼將在"data"運行,並打印結果(如果打印報表模塊中給出)。如果您沒有在buildContent中包含打印語句,請將輸出收集到一個變量中並打印該變量。事情是這樣的:

var = buildContent(data) 
print var 

如果您不需要任何數據atall運行buildContent,只需運行:

buildContent() 
相關問題