2016-03-29 14 views
-2

Yeni bir programcıyım, bu yüzden bana kolay ol, youtube'da bir video izledim ve çoğunu anladım (ya da düşündüm). Ben herhangi bir şey yanlış olabilir üzerinize atlamak yokpython'a yazmaya çalışıyor .txt dosyası

import logging 
import csv 

Date = input ('what date was it?') 
fish = input ('what type of fish did you catch?') 
fly = input ('what fly did you catch the fish on?') 
water = input ('what was the water conditions?') 

fileName = 'fish.txt' 
WRITE = 'w' # write rebuilds the file, so nothing is in the file! 
READ ='r' 
APPEND = 'a' 
ReadWrite = 'w+' 

file = open('fileName', 'a') 
file.write (Date + "\n") 
file.write (fish + "\n") 
file.write (fly + "\n") 
file.write (water + "\n") 

allFileContents = fileName.read() 
print (allFileContents) 

file.close() 

çalıştırmayı denediğinizde

bir hata alıyorum?

+0

Hatayı bilseydim bir şey olabilir. Python, çok iyi bir sebepten dolayı geri tepme sağlar: hata ayıklamada * verrrrrrry * yardımcı olur. – zondo

+0

Kafa dizilerini, değişken adlarını ve dosya nesnelerini karıştırıyorsunuz. Çalışmaya devam etmenizi öneriyorum - soranın bir eğitim hizmeti olmadığı için burada bir soruyu sorabilmeniz, ilk başvurunuz değil. – TigerhawkT3

+0

SO, bir eğitim hizmeti olmadığından bu soruyu konu dışı olarak kapatmak için oy veriyorum. – TigerhawkT3

cevap

3

Aslında burada dosyanızı açmayı değildir:

allFileContents = fileName.read() 

fileName bir dize olarak sadece dosya adı, sen open kullanmak istiyorum:

allFileContents = open(fileName).read() 

Dahası, aslında çalıştığınız fileName adında bir dosya adına yazınız:

Ancak, bence yarattığınız değişkeni, fileName referans olarak kullanmak istiyorsunuz. Bu nedenle, aşağıdakileri yapın:

file = open(fileName, 'a') 

Yardım için kodunuz hakkında küçük yorum yapın. İşte

, bir dosyayı açarken farklı modlar tutan değişkenleri oluşturmak gibi görünüyor:

WRITE = 'w' # write rebuilds the file, so nothing is in the file! 
READ ='r' 
APPEND = 'a' 
ReadWrite = 'w+' 

Kodunuzdaki bu kullanmaz, ve dürüst olmak gerekirse, genel olarak gerçekten yararlı değildir yoktur. Bunları open yöntemlerini çağırdığınızda bunları doğrudan kullanmaya devam edebilirsiniz. Yani onlar olmadan yapabilirsin.

Son olarak, kullandığınız olmadığını ithalat ifadeleri var gibi:

import logging 
import csv 

Tipik olarak, kullanmadığınız modülleri ithal önlemek için her zaman en iyisidir. Bunları numaralı numaralı telefondan kullanacaksanız, onlara ihtiyacınız olduğunda bunları içe aktarma alışkanlığına girmek en iyisidir.

+0

Kod snippet'inden anlayabildiğim kadarıyla, bu durumda her iki ithalat da gereksizdir. Write =, read =, append = bu örnekte faydalı koddan daha çok yorum gibi görünüyor. – Lost

+0

@Lost Katılıyorum. * Hemen * düzeltmeler sağlamak istedim. Ancak, evet, kodu geliştirmek için yapılabilecek başka yorumlar var. – idjaw

+0

Muhtemelen hataya neden olan şeyi düzeltmişsinizdir - çoğunlukla "yanlış olabilecek herhangi bir şey" olan son bir sorudan yola çıkarak yanıt verdiler, ancak bana bir çift cevap vermek istemediler – Lost

İlgili konular