Python中的if同时使用'or'、'and'和'not'合法吗?
我遇到了“语法错误”的问题。
我正在尝试解析一个文件,这个文件在我需要的数据前后都有一些杂乱的内容。
每个大小的文件中,标题都在第71行。
数据从第103行开始。
我的数据结束的位置总是比总行数少7行。
我想用一个if语句来检查,确保在第71行获取标题,从第103行开始获取数据,但不能超过结束位置的7行之前。
如果在这个范围内,就把数据保存到一个名为test.txt的文本文件中。
下面是代码:
import fileinput
import time
filename = '1.csv'
with open(filename) as file:
lines = file.readlines()
line_count = len(lines)
end = line_count - 7
print('line_count is:')
print (line_count)
print('end is')
print (end)
time. sleep (3.0)
count = 0
filename = '1.csv'
for lines in fileinput.input([filename]):
if count == 71 or count >= 103 and not >= end:
print (lines),
print(count),
count = count + 1,
with open("test.txt", "w") as f:
f.write(str(lines))
1 个回答
1
用简单的话来说,我们可以这样说:
如果X大于等于103,并且不大于等于Y
... 大家都明白X是这两个条件的主角,因为英语就是这么运作的。
但是在Python中,情况就不一样了。
这段代码会出错
count >= 103 and not >= end
^
|
|
because you are missing a value right here
你必须把两个比较条件都写完整:
count >= 103 and not count >= end