2016-04-07 22 views
0

appendA() işleviyle crop değişkenini bulmak vedeğişkenini crop ile aynı satırın sonuna ekleyebilmek istiyorum. Python'a nispeten yeni olduğum için bunu nasıl yapacağımı bilmiyorum. ŞimdiPython'da .txt dosyasında belirli bir dizenin satırına nasıl ekleyebilirim?

lines = file.readlines() 

en bizim mahsulü bulup artan miktarı ekleyelim: Her şeyden

crop = input("Which crop? ") 
quantity = input("How many? ") 

def appendA(): 
file.write (quantity + ' ') 

def appendB(): 
file.write ('\n') 
file.write (crop + ' ') 
file.write (quantity + ' ') 

with open ('cropdatabase.txt', 'a+') as file: 
if crop in open('cropdatabase.txt').read(): 
    appendA() 
else: 
    appendB() 

file.close() 
+1

Dosyayı bir satır listesine okuyun. Etkilenen çizgiye ekle. Çizgileri yaz. 'AppendA() 'nizde – xbello

+0

, dosyayı yazarken,' quant' (veriyi) tutan yeni bir dosya oluşturuyorsunuz. –

+0

Kodunuzun bağlamında belirli bir soru sormalısınız, böylece insanlar nerede takıldığını bilirler. Kodunuzla ilgili birkaç sorun var (örneğin, “appendA” sadece miktarı ekleyerek, doğru yerde yapılacağına dair tüm ümitlere karşı ümit ediyor), fakat siz bu dosyayı nasıl açtığınıza başlamalısınız ama bunu “append” işlevlerine ilet, bu yüzden orada yok. –

cevap

0

İlk önce bir liste olarak böyle çalışmak için güzel bir şey haline dosyasını yüklemek alalım: Burada

benim kodudur o:

: Sonunda

index = lines.index(crop) 
lines[index] += ' ' + str(quantity) 

dosyayı kaydedin

+0

'index', yalnızca miktar olmadığı takdirde ürünü bulacaktır. Çizgileri bölmeniz ve "kırpma" yi ilk öğeye uydurmanız gerekir. –

+0

Evet, 'ValueError:' (öğenin içinde hangi dize varsa) 'listede yok' alıyorum. "Çizgileri böl ve ürünü ilk elementle eşleştir" dediğinde, ne demek istiyorsun? – superato

+0

Çekiç dosyayı hatlara böldü.Ve sonra her çizgiyi mahsul ve miktara ayırmalı ve bu parçanın ilk elemanını seninle karşılaştırmalısın. Olayın, orada olup olmadığını görmek için. –

İlgili konular