标签: ioerror

打印时IOError输入/输出错误

我继承了一些代码,这些代码由于在打印调用期间引发输入/输出错误而定期(随机)失败.我试图确定引发异常的原因(或至少,更好地理解它)以及如何正确处理它.

执行以下Python行时(在2.6.6解释器中,在CentOS 5.5上运行):

print >> sys.stderr, 'Unable to do something: %s' % command
Run Code Online (Sandbox Code Playgroud)

引发异常(省略回溯):

IOError: [Errno 5] Input/output error
Run Code Online (Sandbox Code Playgroud)

对于上下文,这通常是当时较大的函数尝试执行的操作:

from subprocess import Popen, PIPE
import sys
def run_commands(commands):
    for command in commands:
        try:
            out, err = Popen(command, shell=True, stdout=PIPE, stderr=PIPE).communicate()
            print >> sys.stdout, out
            if err:
                raise Exception('ERROR -- an error occurred when executing this command: %s --- err: %s' % (command, err))
        except:
            print >> sys.stderr, 'Unable to do something: %s' % command
run_commands(["ls", "echo foo"])
Run Code Online (Sandbox Code Playgroud)

>> …

python io stdout ioerror

20
推荐指数
2
解决办法
2万
查看次数

python - 专门处理文件存在异常

我在这个论坛中遇到过一些例子,通过测试(或这些天?)中的errno值来处理文件和目录的特定错误.例如,这里的一些讨论 - Python的"open()"会为"找不到文件"抛出不同的错误 - 如何处理这两个异常?.但是,我认为,这不是正确的方法.毕竟,存在一个专门避免担心.OSErrorIOErrorFileExistsErrorerrno

以下尝试无效,因为我收到令牌的错误FileExistsError.

try:
    os.mkdir(folderPath)
except FileExistsError:
    print 'Directory not created.'
Run Code Online (Sandbox Code Playgroud)

你如何具体检查这个和类似的其他错误?

python exception ioerror

19
推荐指数
1
解决办法
2万
查看次数

在拟合Sklearn模型时,"设备上没有剩余空间"错误

我正在使用scikit-learn为LDA模型提供大量数据.相关代码片段如下所示:

lda = LatentDirichletAllocation(n_topics = n_topics, 
                                max_iter = iters,
                                learning_method = 'online',
                                learning_offset = offset,
                                random_state = 0,
                                evaluate_every = 5,
                                n_jobs = 3,
                                verbose = 0)
lda.fit(X)
Run Code Online (Sandbox Code Playgroud)

(我想这里唯一可能相关的细节是我正在使用多个工作.)

经过一段时间后,即使磁盘上有足够的空间和足够的可用内存,我也会收到"设备上没有剩余空间"错误.我在两台不同的计算机上(在我的本地计算机和远程服务器上)多次尝试相同的代码,首先使用python3,然后使用python2,每次我都得到相同的错误.

如果我在较小的数据样本上运行相同的代码,一切正常.

整个堆栈跟踪:

Failed to save <type 'numpy.ndarray'> to .npy file:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 271, in save
    obj, filename = self._write_array(obj, filename)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 231, in _write_array
    self.np.save(filename, array)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/numpy/lib/npyio.py", line 491, in save
    pickle_kwargs=pickle_kwargs)
  File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/numpy/lib/format.py", line 584, in write_array
    array.tofile(fp)
IOError: 275500 …
Run Code Online (Sandbox Code Playgroud)

python multithreading ioerror scikit-learn

19
推荐指数
2
解决办法
6981
查看次数

什么是正确的处理方式(在python中)IOError:[Errno 4]由多处理引发的系统调用中断.Queue.get

当我使用multiprocessing.Queue.get时,由于EINTR,我有时会得到一个异常.

我肯定知道有时这种情况没有任何理由(我在tmux buffr中打开另一个窗格),在这种情况下我想继续工作并重试该操作.

我可以想象,在其他一些情况下,错误是由于一个很好的理由,我应该停止运行或修复一些错误.

我该如何区分这两者?

提前致谢

python queue error-handling multiprocessing ioerror

13
推荐指数
2
解决办法
1万
查看次数

OError:[Errno 26]文本文件繁忙:'/...myvirtualenv/bin/python'

我尝试重新创建virtualenv:

foo_bar_d@aptguettler:~$ virtualenv --system-site-packages . 
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

foo_bar_d@aptguettler:~$ virtualenv --system-site-packages .
New python executable in /home/foo_bar_d/bin/python
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 711, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 924, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1230, in install_python
    shutil.copyfile(executable, py_executable)
  File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 26] Text file busy: '/home/foo_bar_d/bin/python'
Run Code Online (Sandbox Code Playgroud)

有人知道为什么会发生这种异常吗?

python virtualenv ioerror

13
推荐指数
1
解决办法
1万
查看次数

在python中捕获IOError

我写了一个方法来做一些东西并捕获坏的文件名.应该发生的是如果路径不存在,它会抛出一个IOError.但是,它认为我的异常处理是错误的语法......为什么?

def whatever():
    try:
        # do stuff
        # and more stuff
    except IOError:
        # do this
        pass
whatever()

但在它进入调用之前whatever(),它会打印以下内容:

Traceback (most recent call last):
  File "", line 1, in 
  File "getquizzed.py", line 55
    except IOError:
         ^
SyntaxError: invalid syntax

进口时......帮忙?!

python exception-handling exception try-catch ioerror

12
推荐指数
2
解决办法
3万
查看次数

使用Python中的sudo权限写入文件

如果非root用户为root拥有的文件运行以下代码,则会抛出错误,即使非root用户具有sudo权限:

try:
  f = open(filename, "w+")
except IOError:
  sys.stderr.write('Error: Failed to open file %s' % (filename))
f.write(response + "\n" + new_line)
f.close()
Run Code Online (Sandbox Code Playgroud)

有没有办法open(filename, "w+")使用sudo权限运行,或者执行此操作的替代功能?

python ioerror file-writing

12
推荐指数
4
解决办法
2万
查看次数

IOError:[Errno 22]无效模式('wb')或文件名:

我一直收到以下错误.

IOError: [Errno 22] invalid mode ('wb') or filename: 'C:\\Users\\Viral Patel\\Documents\\GitHub\\3DPhotovoltaics\\Data_Output\\Simulation_Data\\Raw_Data\\Raw_Simulation_Data_2014-03-24 17:21:20.545000.csv'
Run Code Online (Sandbox Code Playgroud)

我认为这是由于文件名末尾的时间戳.有任何想法吗?

python file-io ioerror

11
推荐指数
1
解决办法
3万
查看次数

打印大量格式化数据时如何避免出现管道错误?

我正在尝试打印在我的格式化的元组列表stdout.为此,我使用str.format方法.一切正常,但是当我输出输出以使用head命令a 查看第一行时IOError.

这是我的代码:

# creating the data
data = []$
for i in range(0,  1000):                                            
  pid = 'pid%d' % i
  uid = 'uid%d' % i
  pname = 'pname%d' % i
  data.append( (pid, uid, pname) )

# find max leghed string for each field
pids, uids, pnames = zip(*data)
max_pid = len("%s" % max( pids) )
max_uid = len("%s" % max( uids) )
max_pname = len("%s" % max( pnames) )

# my template …
Run Code Online (Sandbox Code Playgroud)

python format broken-pipe string-formatting ioerror

10
推荐指数
1
解决办法
2万
查看次数

黄瓜测试失败,"流关闭(IOError)"

我们目前正在将我们的Rails应用程序升级到Rails 4.在3.2中,我们的Cucumber(1.3.17)测试运行良好(如果可悲的缓慢),与Capybara(2.4.4),Poltergeist(1.5.1)和PhantomJS(1.9. 8)引擎盖下.

但是在4.0.12和4.1.8中,我们stream closed (IOError)在运行中得到一个随机点:

stream closed (IOError)
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/formatter/pretty.rb:156:in `write'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/formatter/pretty.rb:156:in `puts'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/formatter/pretty.rb:156:in `step_name'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:181:in `block in send_to_all'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:179:in `each'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:179:in `send_to_all'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:173:in `broadcast'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:119:in `visit_step_name'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:112:in `block in visit_step_result'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:111:in `visit_step_result'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/step_invocation.rb:43:in `visit_step_result'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/step_invocation.rb:39:in `accept'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:106:in `block in visit_step'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:105:in `visit_step'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/step_collection.rb:19:in `block in accept'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/step_collection.rb:18:in `each'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/step_collection.rb:18:in `accept'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:100:in `block in visit_steps'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:99:in `visit_steps'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:15:in `block in execute'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/runtime.rb:83:in `block (2 levels) in with_hooks'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/runtime.rb:99:in `before_and_after'
/var/lib/jenkins/.rvm/gems/ruby-2.1.5@tallama-integration/gems/cucumber-1.3.17/lib/cucumber/runtime.rb:82:in `block in …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails cucumber ioerror

10
推荐指数
1
解决办法
842
查看次数