我的python程序有两个调用 raw_input()
第一种raw_input()是从用户那里获取多行输入.用户可以在输入结束时发出Ctrl + D(在Windows中为Ctrl + Z).
第二个raw_input()应该从用户使用(y/n)类型提示输入另一个输入.
不幸的是(在Mac OS X仅?),第二raw_input()提升EOFError当标准输入在第一终止(用Ctrl + d)raw_input()提示.
有关更多说明,请参阅下面的示例代码 -
mailBody = ''
signature = 'Later!'
print 'Compose your mail:'
while True:
try:
# Hit ^D after entering some text
mailBody+= raw_input()
mailBody+='\n'
except EOFError:
break
# This raw_input() throws EOFError too. Because, stdin is terminated for the session
# when EOF (^D) is issues at first raw_input() method (Where as, it doesn't raise EOFError …Run Code Online (Sandbox Code Playgroud) 我有这个 python 代码来读取一个文件,做一些处理并并行写入结果:
def line_chunker(path):
"""
Reads a file in chunks and yields each chunk.
Each chunk is guaranteed to end at a carriage return (EOL).
Each chunk is returned a single string.
The number of chunks the file is split into is equal to the number of CPU cores
available
"""
size = os.path.getsize(path)
cores = mp.cpu_count()
chunksize = size/cores # gives truncated integer
f = open(path)
s = f.readline() # skip header
while True:
part = f.readlines(chunksize)
if …Run Code Online (Sandbox Code Playgroud) 我昨天在使用 PYTTSX 没有任何问题 - 它的行为完全符合预期并且工作正常。但是,当我在不到两个小时后尝试运行完全相同的代码时,它抛出了这个错误:
Traceback (most recent call last):
File "C:\Python27\FUCK.py", line 2, in <module>
engine = pyttsx.init()
File "C:\Python27\lib\site-packages\pyttsx\__init__.py", line 39, in init
eng = Engine(driverName, debug)
File "C:\Python27\lib\site-packages\pyttsx\engine.py", line 45, in __init__
self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
File "C:\Python27\lib\site-packages\pyttsx\driver.py", line 64, in __init__
self._module = __import__(name, globals(), locals(), [driverName])
File "C:\Python27\lib\site-packages\pyttsx\drivers\sapi5.py", line 19, in <module>
import win32com.client
File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 11, in <module>
import gencache
File "C:\Python27\lib\site-packages\win32com\client\gencache.py", line 662, in <module>
__init__()
File "C:\Python27\lib\site-packages\win32com\client\gencache.py", line 56, in …Run Code Online (Sandbox Code Playgroud) 试图解决问题,但是Hackerrank的编译器在解析时不断抛出错误EOFError:不知道哪里出错了。
#!usr/bin/python
b=[]
b=raw_input().split()
c=[]
d=[]
a=raw_input()
c=a.split()
f=b[1]
l=int(b[1])
if(len(c)==int(b[0])):
for i in range(l,len(c)):
d.append(c[i])
#print c[i]
for i in range(int(f)):
d.append(c[i])
#print c[i]
for j in range(len(d)):
print d[j],
Run Code Online (Sandbox Code Playgroud)
我也尝试尝试抓住解决它,但随后没有输入。
try:
a=input()
c=a.split()
except(EOFError):
a=""
Run Code Online (Sandbox Code Playgroud)
输入格式是2个间隔开的整数,然后是数组
追溯错误是:
Traceback (most recent call last):
File "solution.py", line 4, in <module>
b=raw_input().split()
EOFError: EOF when reading a line
Run Code Online (Sandbox Code Playgroud) 我正在研究使用ftplib(可能还有ftputil)进行一些自动FTP文件同步.我现在有几个服务器来测试这个,但是,当我与两个服务器成功对话时,我会收到每个错误回复的EOFError-s.例如:如果我尝试使用不正确的用户/通行证登录,我会得到530响应的所有内容......但我也得到了一个EOFError; 如果我使用正确的用户/传递登录或尝试dir()之后这样做,我得不到EOFError.
它似乎只出现错误消息.我强烈怀疑这可能是由服务器而不是python引起的:我没有在其他地方找到任何关于这个问题的提及.但是,我对服务器设置几乎没有控制权.
我在征求意见:
except EOFError: pass在每次处理异常之前添加一个,但如果你有更好/更好的想法,我很乐意听到它们.谢谢!
我希望有一个进程持续监视 RPi 输入,并将变量(我选择了一个队列)设置为 True 或 False 以反映去抖动值。然后另一个进程将捕获图像(从流中)。我写了一些代码只是为了检查我可以让多处理和信号(队列)工作正常(我是一个业余编码器......)。
线程处理一切正常,但多处理会产生奇怪的错误。特别是“多处理,EOFError:读取一行时的EOF”。代码输出:-
this computer has the following number of CPU's 6
OK, started thread on separate processor, now we monitor variable
enter something, True is the key word:
Process Process-1:
Traceback (most recent call last):
File "c:\Python34\lib\multiprocessing\process.py", line 254, in _bootstrap
self.run()
File "c:\Python34\lib\multiprocessing\process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\Peter\Documents\NetBeansProjects\test_area\src\test4.py", line 16, in Wait4InputIsTrue
ValueIs = input("enter something, True is the key word: ")
EOFError: EOF when reading a line
Run Code Online (Sandbox Code Playgroud)
#test4.py …Run Code Online (Sandbox Code Playgroud) 我是一个学习Python的新手。请看一下下面的代码(摘自 Goodrich 等人的《Python 中的数据结构和算法》)。
age = -1 # an initially invalid choice
while age <= 0:
try:
age = int(input('Enter your age in years: '))
if age <= 0:
print('Your age must be positive.')
except ValueError:
print('That is an invalid age specification.')
except EOFError:
print('There was an unexpected error reading input.')
raise # let's re-raise this exception.
Run Code Online (Sandbox Code Playgroud)
我知道 ValueError 是什么。例如,如果输入以字符而不是整数形式给出,则会发生 ValueError。
另一方面,我不知道 EOFError 何时引发。
我不明白“重新引发此异常”是什么意思
书上说,“如果控制台输入失败,对输入的调用将引发 EOFError。” 同样,我不知道控制台输入是什么以及控制台输入何时失败。
我尝试了几种引发 EOFError 的方法,但每次尝试都只有 ValueError 。有人可以给我一些想法吗?
提前致谢。
这是导致此错误的代码.
发送线程:
data = pickle.dumps (object);
Run Code Online (Sandbox Code Playgroud)
接收线程:
self.object = pickle.loads(data) // Erroneous line
Run Code Online (Sandbox Code Playgroud)
显示的错误是
self.object = pickle.loads(data)
EOFError
Run Code Online (Sandbox Code Playgroud)
此外,为了添加细节,此错误仅发生50%的次数.其他50%的时间,没有错误!
我需要编写一个 python 代码来打印输入,如下所示:
while (True):
output = raw_input()
print output
Run Code Online (Sandbox Code Playgroud)
但是当我想结束循环时,我使用了 Ctrl_D,它说:
File "./digits.py", line 6, in <module>
output = raw_input()
EOFError
Run Code Online (Sandbox Code Playgroud)
我该如何解决?如果可能的话请给我一些简单的方法,因为这是我第一次用Python编写。