我正在嘗試理解Python並需要關於如何讀取包含大量數據的文本文件的幫助,需要具體信息,並將其存儲到數據庫中。讀取特定數據的.txt文件並將其存儲到sql字段
-------------------------------------------
* xxxxxxxxxxxx從2017-06-07-21.32.43開始。
-------------------------------------------
******* DISPLAY ************
* *
* REC READ = 56813
* REC書面= 56813
* CALLS = 617
*實測值= 963
* NOT FND = 54
* FOUND = 4963
* NOT FND = 0
* SYS = 1
* SYS = 462
------------------------------------ --------
* xxxxxxxxxxxx COMPLETED AT 2017-06-07-21.35
------------------------- -------------------
with open(fname) as f:
content = f.readlines()
content = [x.strip() for x in content]
我的想法:從我的理解,我應該通過讀取線中的.txt線接近這一點,將其存儲到數組,然後使用if語句來測試索引中的值是否爲真(例如Rec讀,寫)等。如何得到它旁邊的值?... (只是一個想法,這可能是完全錯誤的)
更新:使用下面的代碼,我能夠讀取所有行並獲取正確的信息這是必要的。關鍵字存儲在行[0]中,值存儲在行[1]中。我現在試圖將每個值附加到列表中,以便我可以在列表上運行查詢並將其添加到訪問數據庫中的正確字段。現在當我打印一份清單時,它只顯示了一個值,而不是其他值。我的原始文件具有與相同數據配對的多個值。換句話說,有多個「Rec Read」。
file = open(r"C:\Users\cqt7wny\Desktop\joblogs.txt")
rec_read = []
rec_written = []
calls = []
for line in file:
if "REC READ" in line: #This if statement looks through the line
line = line.split("=") #This makes the line two items in a list
rec_read.append(line[1])
if "REC WRITTEN" in line:
line = line.split("=")
rec_written.append(line[1])
if "CC01 CALLS" in line:
line = line.split("=")
calls.append(line[1])
print(rec_read)
輸出:[」 7558265 我想要什麼:[7558265,324322,22232等]
向我們展示您在嘗試提問之前的嘗試 – depperm
@depperm added ..在此之後卡住 –
您需要修正縮進以準確匹配您實際運行的內容。就目前而言,你在這裏提供的代碼會拋出'IndentationError'和'SyntaxError's。最簡單的方法是從你的文本編輯器複製,粘貼到你的問題,然後突出顯示代碼並按下ctrl-k,它會爲你設置格式。 –