2016-05-31 47 views

回答

5

你可以寫文件中的蟒蛇像

with open("out.txt", "w") as f: 
    f.write("OUTPUT") 

或者您可以使用io重定向將輸出重定向到文件

$ python code.py > out.txt 

  1. https://docs.python.org/3/tutorial/inputoutput.html#methods-of-file-objects
  2. https://en.wikipedia.org/wiki/Redirection_(computing)
+0

我也會講述「a」模式。 :D –

+0

做重定向(使用'>'的第二種方法)是可取的。然後,調用者可以選擇使用哪個文件名,是重定向到文件,是管道到另一個命令還是發送到/ dev/null等。 –

-1

你可能想看看file objects,這將允許你寫所有你想要的文件的數據。

例如:

file = open('output.txt', 'w') 
file.write('Here is some data') 
file.close() 
+0

在命令行上重定向是一種更好更簡單的解決方案。 –

+0

的確,但是這個假設程序是從命令行調用的,這個問題沒有提到。 – 3kt

+0

嗯。是不是所有東西都只是「在命令行中調用」的包裝? –

2

假設你將讀取其他應用程序的結果,你可以使用redirections,通常是這樣的:

./myprogram >results.txt 
+0

這是最簡單和最有用的答案。然後,文件名不在Python文件內部進行硬編碼,所以調用者可以選擇寫入不同的文件名(如果他們想要的話),或者用管道輸入另一個命令等等。這就是爲什麼編寫標準並重定向到命令行是一種常見的UNIX範例,應始終默認使用 - 因爲它是最好的解決方案。 –

+0

@JonathanHartley,對於在python應用程序中輸出文件的寫入結果,名稱可以作爲命令行參數傳遞 – kaspersky

+0

它可能是,但這不是一個常見的約定,因爲它沒有那麼有用。如果你以這種方式構建你的程序,他們不能將他們的輸出傳送到另一個進程中。 –

-1

一種方式做到這一點是這樣的:

import csv 

with open("name_of_file_to_be_created") as f: 
    writer = csv.writer(f) 
    for i in range(n): 
     writer.writerow('stuff to write') 
# writes a single line in each iteration, e.g. assuming you are computing something inside the loop 

另一種方式來做到這一點:

with open("name_of_file_to_be_created") as f: 
    print("here you can type freely", file = f) 
    # or 
    f.write('whatever it is that you have to write') 
+0

在命令行上重定向是一個更好 - 更簡單的解決方案。 –

相關問題