2016-11-15 6 views
-2

私のプログラムは、テキストファイル内に花を配置しようとしています。ファイルは、そのタイプの花がいくつ在庫されているかをユーザーに伝えます。私はそれが情報を印刷することによってこれを行うことができますが、コンピュータが最初に新しいテキストファイルに情報を入れてから、テキストファイルを印刷する方法はありますか?ここでpythonでテキストファイルを作成していますか?

は花や彼らの在庫レベル(とどのように多く入荷する必要に行うには、いくつかの他の番号)を含むテキストファイルです

cacti, 7, 10, 5 
roses, 15, 20, 20 
tulips, 4, 10, 5 
lilies, 9, 15, 7 

ここで私が持っているプログラムは、これまでのところで、その

stockfile=open("stockfile.txt", "r") 

print("Flower Shop") 
print("cacti, roses, tulips, or lilies?") 
flower=input("Which type of flower do you need to know the stock level of?")  
line=stockfile.readline() 
data=line.split(",") 
if flower == "cacti": 
    print("Cacti" , data[0]) 
    print("Cacti in stock: ", data[1]) 
    print("Target stock level", data[2]) 
    print("Reorder level", data[3]) 
+1

テキストファイルに書き込むのではなく、 'print'に書き込んだのでです。なぜそれがそうであることに驚くでしょうか? – jonrsharpe

+0

あなたのコードには 'stockfile.write()'はありません。なぜそれが書いていないのですか? –

+0

あなた自身を助けてください:https://docs.python.org/3/tutorial/inputoutput.html – oxalorg

答えて

0

迅速なコメントあなたが始めるために:私は、代わりに新しいテキストファイルを作成するのを見つけるために必要なもののみを印刷.WRITE()ファイルへの書き込みをするための方法です。また、ファイルを開く際には、すべてをきれいに保つためにコンテキスト内で行います。例:

with open("outfile.txt","w") as fout: 
    #do your stuff and write it out 
    fout.write(<data>) 

あなたの場合は、もちろんループ内のすべてにすることができます。たとえば:

with open("stockfile.txt","r") as fin: 
    with open("outfile.txt","w") as fout: 
     for line in fin: 
      #do your stuff and write it out 
      fout.write(<data>) 

最高の運があります。

-1

あなたが最初のファイルのために行うよう

fileObject = open('newfile.txt', 'w') 

は、そこからファイルおよびプリントに必要な結果を書く次のように新しいファイルオブジェクトを開くことができます。

fileObject.write("Cacti : {}, In stock: {}, Target stock level: {}, Reorder level".format(data[0], data[1], data[2], data[3])) 
+0

'' a + "'は、ファイルが存在する場合はファイルに追加することを意味し、読み取りの場合も同様に開きます。新しいファイルを一から作成するために必要なものはありません(これはモード '' "w" 'でなければなりません)。 – ShadowRanger

+0

次回の実行時にファイルを編集する必要がある場合は、追加モードを追加しました。ありがとうございました。 –

関連する問題