我想讀取文本文件並將'~~~~~~~~~~~~~'之間的文本複製到數組中。然而,我在Python是新的,這是因爲據我得到:使用字符串和數組時遇到問題
with open("textfile.txt", "r",encoding='utf8') as f:
searchlines = f.readlines()
a=[0]
b=0
for i,line in enumerate(searchlines):
if '~~~~~~~~~~~~~' in line:
b=b+1
if '~~~~~~~~~~~~~' not in line:
if 's1mb4d' in line:
break
a.insert(b,line)
這是我設想: 首先,我閱讀文本文件的所有行,然後 我宣佈「一」作爲應該添加文本的數組, 然後我聲明'b',因爲我需要它作爲索引。 '~~~~~~~~~~~~~'之間的行數不是偶數,這就是爲什麼我使用'b'所以我可以將文本行放入一個數組索引,直到一個新的'~~ ~~~~~~~~~~''被找到了。
我檢查'~~~~~~~~~~~~~',如果發現我增加'B',所以我可以開始添加文本行到一個新的數組索引。 文本文件以's1mb4d'結尾,所以一旦找到它,程序結束。 如果'~~~~~~~~~~~~~'沒有在行中找到,我添加文本到數組。
但事情並不順利。這些「~~~~~~~~~~~~~~」之間的全部文本行只有1行被複制到每個數組索引。
這裏是文本文件的例子:asdasdjfjfjf
~~~~~~~~~~~~~
Text123asdasd ~~~~~~~~~ ~~~~
123ABC 321bca gjjgfkk
~~~~~~~~~~~~~
首先,什麼是「s1mb4d」的意義是什麼?其次,從一個空數組「a」開始,因爲0不是你正在查找的行。 – DyZ
爲什麼你不要刪除所有'~~~~~~~~~~'? –
文件讀取和行枚舉可能不必要的開銷。同意@dylan_fan,使用're'進行文本搜索和驗證。 –