我在这个问题上遇到了一些麻烦。我是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