奇怪的循环行为

你好,
我写了一个程序,该程序从文件中读取数据并将其放在字符串中,
问题是它无限地循环,而不是想要的,这里是
编码 :
d = repr(f.read(default_buffer_size))
d!="":
file_str.write(d)
d = repr(f.read(default_buffer_size))
我还尝试编写像这样的时期条件:len(d)0,但是
那没有任何改变.我尝试使用逐步调试
Pydev(Eclipse插件),我注意到了一次,一次阅读一次,
基本上,它永远不会重新阅读,而是在
在循环的身体/块中的两条线之间,它永远不会在
因此,从不验证条件,从而永远循环.我
一直在使用psyco(python的一种JIT),所以我卸载了它
重新开始日食,我仍然得到同样的事情.这看起来像
有些错误,但我可能错了,有人知道这里发生了什么吗?
谢谢,
加布里埃尔
PS
是的,我检查了," D"变量在某个时候是空字符串,所以
循环应该停止.
- -
Arimaz SA
av. DU 24 Janvier 11
Ateliers de la Ville de Renens,Atelier 5
瑞士1020 Renens www.mydeskfriend.com
暴民: +41-(0)79-539-0069

# 回答1


Gabriel Rossetti Schrieb:
但是您使用了多余的代表.看这个:
"''"
错误的
因此 - 摆脱无用的重复,那么事情应该起作用.
关于调试器中的行为:那是
调试器认为它不会进入该线路,它不会改变方式
代码有效.
diez
# 回答2


加布里埃尔·罗塞蒂(Gabriel Rossetti)写道:
D可能是一个空字符串,但reter(d)不是:
''
删除两个repr()呼叫,您​​应该可以.
彼得
# 回答3


3月26日,8:35*上午,加布里埃尔·罗塞蒂(Gabriel Rossetti)
不,它不是空字符串,它是
空字符串(因为您将f.read()呼叫包装在repr()中),
这是字符串"''":
''
为什么在repr()函数中包装f.Read(...)?如果您删除
我怀疑您的代码会起作用.
OTOH您知道文件对象的read()方法可以做什么
想?您可以简单地写:
file_str = f.read()
还是还有其他因素阻止您这样做?
- -
Arnaud
# 回答4


Arnaud Delobelle写道:
不,它不是空字符串,它是
空字符串(因为您将f.read()呼叫包装在repr()中),
这是字符串"''":
''
为什么在repr()函数中包装f.Read(...)?如果您删除
我怀疑您的代码会起作用.
OTOH您知道文件对象的read()方法可以做什么
想?您可以简单地写:
file_str = f.read()
还是还有其他因素阻止您这样做?
- -
Arnaud
好的,就像我在第二个味精中提到的那样,我把repr()放在那里,因为我
由于超出了ASCII范围(128),因此遇到了错误
作弊并告诉它是Unicode,但 不起作用,所以我尝试了 ret(),它给了我一个字符串代表. 在我的数据中,没关系. 在那之后 我尝试使用Stringio而不是以前的弦乐,这是字符串列表 后来我加入了一个空字符串. 我只是重新审判了 reter()及其与Stringio版本一起使用. 感谢您的所有答案, 加布里埃尔

标签: python

添加新评论