2017-04-06 44 views
0

所以我正在研究基本上有一個存儲'產品'列表的文本文件的代碼,用戶應該能夠輸入他們想要的產品GTIN-8代碼並從中獲得收據。 我已經這樣做了,當用戶輸入GTIN-8代碼時,代碼會查看產品文本文件以找到匹配的GTIN-8代碼。當它的時候,它應該得到那行代碼,然後把它寫到另一個名爲'Receipt'的文本文件中(我想不出有任何其他的方式來做到這一點)。它也應該說'找到產品'或'該產品不存在',取決於是否存在匹配。但是,我的代碼會檢查每一行代碼,並在屏幕上顯示每行代碼是否匹配。我需要有一行代碼,以便我可以獲取該行的信息,但我不希望代碼檢查每條單行。就像整個文件的概述並挑選出特定的行。我希望這是有道理的。Python-如何停止代碼單獨檢查文本文件的每一行?

with open("Productsfile.txt") as f: 
    Found = False 
    for line in f: 
     if ProductsWanted in line: 
      Receipt=open("ReceiptFile.txt","a") 
      Receipt.write("%r x%r\n" % (line, AmountOfProducts)) 
      Receipt.close() 
      print("Product found!") 
      Found = True 
    if not Found: 
     print("That product does not exist") 

(我刪除了截圖/鏈接,並把它作爲文本,我很抱歉,如果投入截圖/鏈接是錯誤的做法) 謝謝!

+0

不要發佈代碼的截圖。 –

+0

@JoshLee對不起,我不知道,我想不出任何其他方式來顯示它 – Chloe

+0

請將代碼作爲文本發佈,這裏的[Markdown幫助](http://stackoverflow.com/編輯 - 幫助#代碼)。 –

回答

0

有多少種產品?

如果數量少於百萬,請考慮將文件內容讀入字典中,並鍵入GTIN-8代碼。

(這是否有意義?)

+0

這應該更適合評論。 – CristiFati

+0

只有5個產品,我不想太多開始。謝謝,我會去字典的東西! – Chloe

+0

很酷。如果您需要關於如何操作的建議,請給我留言。 –

0

如果你打算去努力較小的文件,那麼你可以讀取文件中的行成一個列表,然後檢查是否該行是在列表中。像這樣:

Lines=[x.strip() for x in open("file.txt")] #readlines has \n at the end of lines so use strip to remove it 
If product in lines: 
    print "line no =",lines.index(product)+1 
else: 
    print "Product not found" 
相關問題