2013-01-08 53 views
-4

我有一個文本文件,需要追加才能導入到我的數據庫中。文本文件中有大約4800條奇數行。數據在。有人可以幫我一個Python腳本,將:從.txt文件中使用Python刪除文本2.7

  1. 讀取文件
  2. 刪除一切,除了與NDC,XXXXX-XXXX-XX線
  3. 寫一個新的文件與數據NDC,XXXXX-XXXX -XX

請注意,NDC有一段時間是XXXX-XXXX-XX格式,有時候是XXXXX-XXXX-XX格式。

下面是一些數據:

NDC,0065-0795-50 

5.25667 
48320,2 
NDC,0517-2650-25 

0.0411 

NDC,51079-190-20 

0.1582 

NDC,0603-5450-21 

0.7924 
+4

不是真的 - 這是針對問題的自願協助的問答形式,可以顯示您的努力...我們可以看到您迄今爲止所嘗試的內容,否則這隻會顯示爲「給我寫代碼」問題 –

+1

我有點困惑。如果一行有'NDC,XXXXX-XXXX-XX',你想寫整行還是隻寫這部分?一條線可以有兩個嗎? – abarnert

+0

可能值得注意的是,對於'grep' /'ack','awk','sed'和/或其他簡單Unix過濾器,您嘗試執行的操作可能比Python更好。 – abarnert

回答

2
with open(inpath, 'r') as infile, open(outpath, 'w') as outfile: 
    for line in infile: 
     if 'NDC,' in line: 
      outfile.write(line) 

這使得一些假設:

  • 從未有與它'NDC,'除了你的價值觀的任何隨機文本。如果不是這樣,你可能想寫一個更智能的測試,可能使用regular expressions
  • 如果存在'NDC,'而不僅僅是該行的那部分,則要編寫整行。如果不是這樣,應該很容易調整 - 尤其是如果你已經完成了上述操作(因爲那樣你就可以寫出,例如re而不是線)。
  • 等等...

由於您的問題是如此模糊,沒有辦法,只好讓猜測那樣,並有可能它們中的至少一個將是錯誤的。

但是這會告訴你程序的結構是什麼樣的,你應該能夠自己填補空白。試試吧,如果你卡住了,請回來尋求幫助。

+0

其實我在這個問題上收回了我對你自己的評論 - 這符合OP的要求,所以+1,希望OP有足夠的能力前進 –

+0

工程就像一個魅力。謝謝。你爲我節省了幾個小時的數據輸入!下面是你的幫助及其結果的代碼.--以open('c:\ NDCImportGarbageData.txt','r')作爲infile,open('c:\ NDCImportCleanedData.txt','w')作爲outfile: 對於infile中的行: if'NDC,in line: outfile.write(line) - 那麼我不能在這裏放置一個截圖,但你明白了。再次謝謝你。 – Shaji