2013-07-22 52 views
2

我想寫每個組的不同文本文件;我該如何去做呢?目前它將所有內容寫入一個txt文件。如何從單個輸出打印多個txt文件

data = json.loads(output) 
print "===========================Example 1=======================================" 
for issue in data["issues"]: 
    print issue ['key'], issue['fields']['summary'] 

data = json.loads(output1) 
print"======================Example 2====================================" 
for issue in data["issues"]: 
    print issue ['key'], issue['fields']['summary'] 

data = json.loads(output2) 
print"====================== Example 3====================================" 
for issue in data["issues"]: 
    print issue ['key'], issue['fields']['summary'] 

data = json.loads(output3) 
print"======================Example 4====================================" 
for issue in data["issues"]: 
    print issue ['key'], issue['fields']['summary']  

data = json.loads(output4) 
print"======================Example 5====================================" 
for issue in data["issues"]: 
    print issue ['key'], issue['fields']['summary']  

硫雜是我已經解決了這個問題:

for issue in data["issues"]: 
    f.write(issue ['key']) 
    f.write(issue['fields']['summary']) 
    f.write('\n') 

它在列表中的每一行下單獨的文件寫的每一件事情。

+0

提示:字符串,連接,寫入字符串到文件 – Prasanth

+0

如果我的回答在下面適當地回答您的問題,請將此問題標記爲已回答。否則,進一步闡述。 – pygeek

回答

1

你只是在你的例子中打印,而不是寫入文件。 另外,如果有100個輸出,你會怎麼做?

簡化的解決方案的僞代碼示例:

output1 = {...} 
outputs = (output1, output2, output3) 

for index, output in enumerate(outputs): 
    filename = 'output_data_{0}'.format(index) 

    #this will write file in directory relative to script location 
    with open(filename, 'w') as f: 
     f.write('Example {0}:\r\n'.format(index)) 

     for issue in data["issues"]: 
      # assumes issue is of type dict 
      # assumes issues has appropriate keys 
      # assumes values are of string type 
      key = issue['key'] 
      summary = issue['fields']['summary'] 

      f.writelines((key, summary, "\r\n",)) 

對於Python文件對象文檔:

http://docs.python.org/2/library/functions.html?highlight=open#file http://docs.python.org/2/library/stdtypes.html#bltin-file-objects

而且,請注意,這個解決方案不是類型安全,應小心以確保將字符串傳遞給文件對象的寫入方法。

+1

不錯,+1。一些提示:'write'只接受一個參數(不是'',就像'print'中一樣);在寫出問題後添加「\ n」;你可以在循環中包含'json'調用('data'永遠不會被創建);並更好地使用'與開放(...)作爲f'。 –

+0

感謝您的意見。我知道我的代碼是重複的,我會努力縮短代碼。 –

+0

不錯,趕上Tobias。 'writelines'方法將是在這種情況下實施的正確方法。我會更新我的示例以反映這一點,新行字符和'with'語句。謝謝。 – pygeek