我有一个csv文件,每天填充3行。当它开始时它没有,然后是1,2和3.我希望我的代码通过这些行并根据行写入的内容做一个动作,不管那里有什么。我遇到的问题是它将读取第1行和第1行。 3并执行得很好,但不是第2行。
CSV NAME - User1.csv
CSV EXAMPLE:
Line 1
Line 2
Line 3
我的代码:
import csv
import itertools
while 1:
z = 'User1.csv'
RUN1 = False
RUN2 = False
with open(z, 'r') as f:
Line = csv.reader(f)
for Line in itertools.islice(f, 1, 2):
print('newline2')
RUN1 = True
if RUN1 == False:
for Line in itertools.islice(f, 0, 1):
print('newline1')
RUN2 = True
if RUN2 == False:
print('newline0')
break
如果你能简单解释为什么你这样编写代码,我也会接受对代码的完全重写,这样我就可以更好地学习python。
解决了!感谢a_guest评论。
工作代码是:
import csv
import itertools
while 1:
z = 'User1.csv'
RUN1 = False
RUN2 = False
with open(z, 'r') as f:
Line = csv.reader(f)
for Line in itertools.islice(f, 1, 2):
print('newline2')
RUN1 = True
if RUN1 == False:
with open(z, 'r') as f:
for Line in itertools.islice(f, 0, 1):
print('newline1')
RUN2 = True
if RUN2 == False:
print('newline0')
break
因为a_guest说你必须重置文件指针,我再次添加open(z,' r')作为f:并修复了它。请随意使用其他方法发布此问题,以帮助其他人遇到非常类似的问题。