【问题标题】:python call subprocess renpython调用子进程ren
【发布时间】:2017-10-08 13:03:04
【问题描述】:

我尝试使用批处理命令重命名 python 中的现有文件,但收到以下错误:

TypeError: unsupported operand type(s) for +: 'NoneType' and 'list'

使用此代码:

import subprocess
from time import gmtime, strftime
now = strftime("%Y-%m-%d_%H:%M:%S", gmtime())
src = "C:\Users\Murph\xxx_yyy_.jpg"
dst = "xxx_yyy_zzz_" + now + "_.jpg"
subprocess.call('ren %s %s'%(src,dst), shell=True)

然后我尝试了不同的代码并得到了这个错误:SyntaxError: ("no possible alternative at input ''%s''",

不同的代码:

import os 
os.system(ren '%s','%s' < %(src,dst))

我错过了什么?

错误代码1:

[error] Abgebrochen
[error] Ein Fehler in Zeile 17
[error] Fehlermeldung: Traceback (most recent call last):
File "C:\Users\Murph\AppData\Local\Temp\sikuli-tmp8294784858223312402.py", 
line 17, in 
subprocess.call('ren %s %s'%(src,dst), shell=True)
File "D:\Program Files (x86)\Sikuli X\sikuli-script.jar\Lib\subprocess.py", 
line 456, in call
File "D:\Program Files (x86)\Sikuli X\sikuli-script.jar\Lib\subprocess.py", 
line 751, in __init__
File "D:\Program Files (x86)\Sikuli X\sikuli-script.jar\Lib\subprocess.py", 
line 1236, in _execute_child
TypeError: unsupported operand type(s) for +: 'NoneType' and 'list'

错误码2:

[error] Abgebrochen
[error] Ein Fehler in Zeile 17
[error] Fehlermeldung: Traceback (most recent call last):
File "C:\Users\Murph\AppData\Local\Temp\sikuli-tmp6179560160671230371.py", 
line 17, in 
os.system('ren %s %s' %(src,dst))
File "D:\Program Files (x86)\Sikuli X\sikuli-script.jar\Lib\subprocess.py", 
line 456, in call
File "D:\Program Files (x86)\Sikuli X\sikuli-script.jar\Lib\subprocess.py", 
line 751, in __init__
File "D:\Program Files (x86)\Sikuli X\sikuli-script.jar\Lib\subprocess.py", 
line 1236, in _execute_child
TypeError: unsupported operand type(s) for +: 'NoneType' and 'list'

【问题讨论】:

  • python 没有给你一个完整的堆栈跟踪显示哪一行失败了吗?这应该是共享的。
  • 我没有看到第一个示例导致该错误的任何方式。
  • 是的。最后几行失败了。所以 subprocess ... 和 os.system ...
  • 我在 sikuli 中使用了这段代码,我认为它使用了 jython 2.5。
  • 发布完整的堆栈跟踪,以便我们了解发生了什么。它确实有助于缩小问题范围。修复源路径问题后...src = "C:\\Users\\Murph\\xxx_yyy_.jpg" 您的程序没有为我引发该错误。

标签: python batch-file rename


【解决方案1】:

该错误与 Jython 2.5 子进程模块有关:Error link

您应该使用 Sikuli 的最新版本。 (当前版本是 1.1.1 和 Python 语言级别 2.7 'Jython 支持')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2013-06-25
    • 2016-03-02
    • 2013-08-18
    • 2015-12-10
    • 1970-01-01
    相关资源
    最近更新 更多