【问题标题】:Not recognized non existant file无法识别不存在的文件
【发布时间】:2011-01-18 21:30:06
【问题描述】:

我在使用此代码(类的一部分)时遇到了一个奇怪的错误:

from sys import path as workingDIR
from os import system, path

image = '' # some jpeg image data
keep = 0

DIR = workingDIR[0] + '\\image'
if path.isfile(DIR + '.jpeg'):                # adding numbers to end of file name like how windows prevents multiple files having the same name
    x = 2
    while path.isfile(DIR + ' (' + str(x) + ').jpeg'):
        x += 1
    DIR += ' (' + str(x) + ')'
DIR += '.jpeg'
f = open(DIR, 'w+b')
f.write(image)
f.close()
system(DIR)
system('pause')
if not(keep):
    remove(DIR)

cmd 告诉我'...\image' is not recognized as an internal or external command, operable program or batch file.(忽略...),这是没有意义的,因为DIR 已经更改为...\image.jpeg,但它正在获取image。我在这里做错了什么?

【问题讨论】:

  • 我们为什么要忽略...?您希望我们为您解决问题吗?
  • 你应该发布示例代码,人们可以直接运行以重现错误
  • @David Hefferman ... 是我闪存驱动器上的文件夹之一,我不想把它放到网上。为什么这有关系?我没有弄乱系统文件或任何东西。您可以将图片放置在您想要的任何位置。 @kefeizhou 该代码实际上与可行代码相同。除了删除def ... 的东西,提供图像的数据并摆脱标签之外,您不需要做任何事情
  • 我做了一些编辑,所以上面的代码在我的盒子上运行,但我没有看到任何错误。因此,除非您可以提供重现错误的完整代码(根据您的说法很简单),否则我无法真正帮助您..
  • 好的,但我不清楚 ... 是用来作为占位符的!

标签: python windows image cmd


【解决方案1】:

图像文件名中有一个额外的空格 - “..\image (1).jpeg”
因此,当您调用 system(DIR) 时,“..\image”成为命令,“(1).jpeg”是第一个参数。

【讨论】:

  • 很好地抓住了空白。 @calccrypto 你为什么还要使用os.systemsubprocess 更健壮(并且意在取代 os.system)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 2013-06-12
  • 1970-01-01
  • 2012-07-10
相关资源
最近更新 更多