【发布时间】: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