在Python3.4中,readline单独工作很好,但在';具有开放式';环为什么?
在open中添加参数,如'r'、'ignore'、编码等,并没有什么区别 它也发生在其他输入文件上,因此它不是特定于输入的 即使循环中没有停顿,它也会死掉 在第一行之后,它打印该行和暂停消息, 读到第二行就死了在Python3.4中,readline单独工作很好,但在';具有开放式';环为什么?,python,file,io,with-statement,Python,File,Io,With Statement,在open中添加参数,如'r'、'ignore'、编码等,并没有什么区别 它也发生在其他输入文件上,因此它不是特定于输入的 即使循环中没有停顿,它也会死掉 在第一行之后,它打印该行和暂停消息, 读到第二行就死了 这可能是真正的编译器错误吗?您需要添加一个循环来迭代行: infile = 'xyz.txt' f = open(infile) line = f.readline() # these lines are all read fine print("line=",line) line
这可能是真正的编译器错误吗?您需要添加一个循环来迭代行:
infile = 'xyz.txt'
f = open(infile)
line = f.readline() # these lines are all read fine
print("line=",line)
line = f.readline()
print("line=",line)
line = f.readline()
print("line=",line)
pause()
f.close()
with open(infile) as f:
line = f.readline() # this reads the first line but
print("line=",line) # dies without a message on line 2
pause()
sys.exit
def pause():
c = input("\nEnter q to quit, anything else to continue\n")
if (c.lower()=='q'): sys.exit()
return (c)
导入系统
def pause():
c=输入(“\n输入q以退出,其他任何内容以继续”)
如果c.lower()=='q':
sys.exit()
infle='ttest.csv'#首先,
with
(在本例中,with open
)不是循环,with
是语句(签出:),请尝试以下操作:
import sys
def pause():
c = input("\nEnter q to quit, anything else to continue")
if c.lower() == 'q':
sys.exit()
infile = 'ttest.csv' # <-- replace with your own file
with open(infile) as f:
for line in f:
print('line = ', line)
pause()
如果你问错了问题,readline也可以与“with open”配合使用
您的标题是“在Python3.4中,readline单独工作很好,但在‘打开’循环中消亡。为什么?”如上所述,
with
不是循环没有循环。。。什么意思?你期望它像一个循环吗?with open
不是一个循环,with
是一个语句作为旁注,sys.exit
除非你调用它,否则不会做任何事情。另外,“死”在这里是什么意思?到底发生了什么?它只是在没有消息的情况下退出吗?提出一个例外?赛格断层?而且没有任何代码可以读取第二行,那么这种死亡到底发生在哪里呢?不建议readlines
在没有它的情况下工作得很好的代码上可能重复;只需对f中的行执行:
。没有理由将整个文件读入内存并建立一个列表。
import sys
infile = 'xyz.txt'
def pause():
c = input("\nEnter q to quit, anything else to continue\n")
return c
with open(infile,'r') as f:
for line in f:
print("Current line:",line)
d={'q':sys.exit}
d.get(pause().lower(), lambda: '')()
sys.exit()