很抱歉问这么基本的问题,但我现在很迷茫。下面的代码会随机引发操作系统错误(没有这样的文件或目录),即使文件存在。你知道吗
try:
os.rename(ruta,ruta[:-6])
except Exception as e:
print "No pude renombrar la ruta "+ruta+" como "+ruta[:-6]
print e
运行示例:
arivacoba@computer:~/Desarrollo/Medea$ ./nmsorter0.py
---Status messages not relevant to the issue---
---Some status messages about the successful renaming of most directories---
No pude renombrar la ruta /home/arivacoba/Desarrollo/Organizar/Audio/Jazz diverso/2015 VA - Jazz Lounge Classics Vol.2/CD 1.AUDIO como /home/arivacoba/Desarrollo/Organizar/Audio/Jazz diverso/2015 VA - Jazz Lounge Classics Vol.2/CD 1
[Errno 2] No such file or directory
No pude renombrar la ruta /home/arivacoba/Desarrollo/Organizar/Audio/Jazz diverso/2015 VA - Jazz Lounge Classics Vol.2/CD 2.AUDIO como /home/arivacoba/Desarrollo/Organizar/Audio/Jazz diverso/2015 VA - Jazz Lounge Classics Vol.2/CD 2
[Errno 2] No such file or directory
在这个例子中,我已经验证了文件的存在。更重要的是,我可以从python重命名文件:
arivacoba@computer:~/Desarrollo/Medea$ python
Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> ruta='/home/arivacoba/Desarrollo/Organizar/Audio/Jazz diverso/2015 VA - Jazz Lounge Classics Vol.2/CD 2.AUDIO'
>>> os.rename(ruta,ruta[:-6])
>>> os.rename('/home/arivacoba/Desarrollo/Organizar/Audio/Jazz diverso/2015 VA - Jazz Lounge Classics Vol.2/CD 1.AUDIO','/home/arivacoba/Desarrollo/Organizar/Audio/Jazz diverso/2015 VA - Jazz Lounge Classics Vol.2/CD 1')
>>>
arivacoba@computer:~/Desarrollo/Medea$ ls ../Organizar/Audio/Jazz\ diverso/2015\ VA\ -\ Jazz\ Lounge\ Classics\ Vol.2/
CD 1 CD 2 front.jpg index.mfo
arivacoba@computer:~/Desarrollo/Medea$
如前所述,这是随机发生的;我将大量语料的片段传递给应用程序,以便对其进行处理,但我观察到:
我已经有了一个解决方法,但它有点失望,我不能看到什么是错的,在这样简单的代码。你知道吗
变通办法
os.system (("mv '%s' '%s'") % (ruta,ruta[:-6]))
工作很好,虽然有点慢。你知道吗
更新:在重命名后插入睡眠每次都有效,尽管速度很慢:S 这是整个循环的代码,我不知道是什么导致了这个。。。比赛条件?你知道吗
for cada in _restDir:
ruta = os.path.realpath(cada)
ddir = 'DIR'+cada[-5:]
ruta = ruta.replace(DIRBASE,(eval(ddir))
try:
os.rename(ruta,ruta[:-6])
except Exception as e:
print "No pude renombrar la ruta "+ruta+" como "+ruta[:-6]
print e
sleep (0.1)
目前没有回答
相关问题 更多 >
编程相关推荐