簡體   English   中英

for循環將多個文件寫為python中的乳膠輸出

[英]for loop to write multiple files as latex output in python

嘿,我是新手,學習經濟學課程的python和LaTeX,而且我有關於如何執行for循環以在多個tex文件中編寫LaTex輸出而不重復代碼的查詢。

result= ['res','res1','res2','res3']
for r in result:
   f = open(r +'.tex', 'w')
   latex= r.summary().as_latex()
   f.write(latex)
   f.close()'

上面的代碼給出了AttributeError:'str'對象沒有屬性'summary'

結果列表包含我運行的回歸的摘要。 因此,每個res都是OLS回歸的摘要。 我想通過for循環將摘要轉換為LATeX代碼,而不是像這樣寫

f = open('res.tex', 'w')
f.write(results.summary().as_latex())
f.close()
f = open('res1.tex', 'w')
f.write(res2.summary().as_latex())
f.close()

依此類推...有沒有辦法通過for循環來做到這一點?

您說“結果列表包含我運行的回歸的摘要”,但是您的代碼

result= ['res','res1','res2','res3']

顯然將result作為字符串列表。 這給出了您的錯誤: “ AttributeError:'str'對象沒有屬性'summary'。”

如果您有四個變量,那么

result = [res, res1, res2, res3]

可能會給您列出您的回歸分析。


您似乎想要遍歷結果列表和文件名列表。

就像是

result = [res, res1, res2, res3]
filename = ['res', 'res1', 'res2', 'res3']

你可以這樣

for (res, name) in zip(result, filename):
   f = open(name +'.tex', 'w')
   latex= res.summary().as_latex()
   f.write(latex)
   f.close()

甚至更好

for (res, name) in zip(result, filename):
   with f = open(name +'.tex', 'w')
       latex = res.summary().as_latex()
       f.write(latex)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM