我有以下内容:
with open('deltas11min.txt', 'r') as f:
for line in f:
f_str = str(f.readline())
firstchar = f_str[:1]
if firstchar == 'a':
等等。。。
在Spyder中运行时,我发现当它运行行firstchar = f_str[:1]
时,它没有分配文本文件第一行的第一个字符值,而是读取下一行并将其分配为f_str
。
为什么会发生这种情况,我该怎么做呢?我想从文本文件中读取一行,然后将第一个字符记录为变量。
open
返回一个可迭代文件,该可迭代文件生成文件中的所有行。for
循环已经在文件中的行上进行了迭代,因此不需要调用readline
。
for line in f:
if line.startswith("a"):
# Do something...
readline
告诉解释器转到下一行,然后读取它。它主要用于有while
循环的情况。
for line in f:
firstchar = line[0] # Use first index, not list splicing
if firstchar == 'a':
# ...