我在這個問題上遇到了一些麻煩。我是Python的初學者,一直在尋找這個網站,但似乎無法弄清楚如何解決這個問題。如果我有一個看起來是這樣的文件:如何從文件讀取整數,然後在該文件中的整數(Python)之後讀取多行?
3
Alpha
Beta
Gamma
4
Delta
Epsilon
Omega
Zeta
我想讀的是第一個整數(在這種情況下,3,但它可能會發生變化),並打印出來,然後閱讀接下來的三線(阿爾法, Beta,Gamma)並打印出來。之後,我想讀取下一個整數(在本例中爲4),然後讀取下四行(Delta,Epsilon,Omega,Zeta)並打印出來。
我想我已經想出瞭如何解決這個問題,如果這個整數是固定的,但我不知道如何做到這一點,如果整數是一個變量,可以是任何東西。以下是我對若整數是固定的:
with open('myfile.txt') as input_data:
for line in input_data:
if line.strip() == '3':
print "3"
break
# Reads text until the end of the block:
for line in input_data: # This keeps reading the file
if line.strip() == '3':
break
print line
我會把這一個while循環遍歷整個文件,讀取(印刷)的整數x,閱讀(印刷)的下一個x行,然後讀取整數y,讀取下一個y行等等。由於我可以處理大文件,因此逐行讀取似乎是使用f.readline()的方式,因此在讀取第一個整數和數字後面,我應該閱讀下一個。
任何幫助將不勝感激。謝謝!
編輯:
我想從有我的數據(3α+β伽瑪4等)的文件中讀取。然後我會讀取3(或任何整數),然後讀取Alpha Beta Gamma。然後我會把它寫到一個文件中。然後,我會讀4(或任何整數),然後將信號讀取Delta Epsilon Omega Zeta。我會像這樣瀏覽文件的其餘部分。
我有一些想法的各個部分,所以從文件「myfile.txt的」看完之後,我會寫這個輸出到「output.txt的」:
with open('myfile.txt', 'r') as fin:
alllines = fin.readlines();
with open('output.txt', 'w') as fout:
for i in range(len(alllines)):
fout.write(alllines[i]);
我也只是做散熱片。 readline()並逐行閱讀。
我發現一個規律:要打印*每一行*。爲什麼不只是'輸入input_data:print line','? – zondo
要測試一個字符串是否是整數,請使用'line.isdigit()'。 – cdarke
儘管我想最終打印每一行。基本上,我想打印第一個塊(3,Alpha,beta,Gamma)並將其放在一個文件中,然後打印第二個塊(4,Delta等)並將其放入文件等中。 – user6496380