我有一個具有特定數據的文件,我想拉。用多行創建輸出文件(Python)
文件看起來是這樣的:
DS User ID 1
random garbage
random garbage
DS N user name 1
random garbage
DS User ID 2
random garbage
random garbage
DS N user name 2
到目前爲止,我有:
import sys
import re
f = open(sys.argv[1])
strToSearch = ""
for line in f:
strToSearch += line
patFinder1 = re.compile('DS\s+\d{4}|DS\s{2}\w\s{2}\w.*|DS\s{2}N', re.MULTILINE)
for i in findPat1:
print(i)
我輸出到屏幕上看起來是這樣的:
DS user ID 1
DS N user name 1
DS user ID 2
DS N user name 2
如果我寫使用到文件:
outfile = "test.dat"
FILE = open(outfile,"a")
FILE.writelines(line)
FILE.close()
一切都推到了一個單行:
DS user ID 1DS N user name 1DS user ID 2DS N user name 2
我可以對輸出中第一個場景住。理想情況下,儘管我想從輸出文件中去除'DS'和'DS N',並用逗號分隔。
User ID 1,user name 1
User ID 2, username 2
有關如何完成此任務的任何想法?
嗨,歡迎來到StackOverflow。請花一分鐘熟悉編輯器,特別是可用於格式化代碼的代碼按鈕「{}」。 – 2011-03-01 13:13:14
這顯然不是你真正的計劃。首先,你永遠不會使用正則表達式。它也不符合你提供的樣本,至少不是其中的大部分。你永遠不會定義'findPat1'。 – 2011-03-01 13:19:06
請清楚描述你的輸入數據是什麼樣子以及你用什麼標準來匹配。從您的示例看,尋找以DS開頭的行應該足夠了 - 如果不是,請說明規則。您似乎正在嘗試匹配相應的用戶標識/用戶名條目。如果我們知道你在做什麼,我們當然可以向你展示一個更好的方式。 – 2011-03-01 13:25:15