Питон просто глухо виснет без сообщения об ошибке?
Уважаемые питоноведы, подскажите что может быть причиной такой ситуации
Человеку понадобился скрипт для переименования файлов и директорий, я ему написал, у меня под Линуксом и Вендой все прекрасно работает, у него вообще все глухо виснет:
http://potap.livejournal.com/810831.html?thread=13102927#t13102927
Как такое может быть?
Скрипт-то простейший!
Спасибо.
import os, sys
import re
import unidecode
orig = sys.argv[1]
###############################
# RENAMER #
###############################
def nameChange(name):
newFileName = unidecode.unidecode(unicode(name))
newFileName = newFileName.replace(" ", "_")
newFileName = re.sub(r'(;|\:|\!|\?|\,)', "", newFileName)
return newFileName
#################################
if not os.path.exists(orig):
print("no folder to process")
sys.exit(0)
######################################## ###
# first process files
######################################## ###
for root, dir, files in os.walk(unicode(orig)):
for file in files:
originalFullName = os.path.join(root, file)
newFileName = nameChange(file)
newFullname = os.path.join(root, newFileName)
if originalFullName != newFullname:
os.rename(originalFullName, newFullname)
print("Renamed file " + repr(originalFullName) + " into " + repr(newFullname))
######################################## #########
# now directories
######################################## #########
while True:
renameDone = False
for root, dir, files in os.walk(unicode(orig)):
for d in dir:
newDirName = nameChange(d)
if newDirName != d:
fullDirName = os.path.join(root, d)
newFullDirName = os.path.join(root, newDirName)
os.rename(fullDirName, newFullDirName)
print("Renamed directory from " + repr(fullDirName) + " to " + repr(newFullDirName))
renameDone = True
if renameDone == False: break
Человеку понадобился скрипт для переименования файлов и директорий, я ему написал, у меня под Линуксом и Вендой все прекрасно работает, у него вообще все глухо виснет:
http://potap.livejournal.com/810831.html?thread=13102927#t13102927
Как такое может быть?
Скрипт-то простейший!
Спасибо.
import os, sys
import re
import unidecode
orig = sys.argv[1]
###############################
# RENAMER #
###############################
def nameChange(name):
newFileName = unidecode.unidecode(unicode(name))
newFileName = newFileName.replace(" ", "_")
newFileName = re.sub(r'(;|\:|\!|\?|\,)', "", newFileName)
return newFileName
#################################
if not os.path.exists(orig):
print("no folder to process")
sys.exit(0)
########################################
# first process files
########################################
for root, dir, files in os.walk(unicode(orig)):
for file in files:
originalFullName = os.path.join(root, file)
newFileName = nameChange(file)
newFullname = os.path.join(root, newFileName)
if originalFullName != newFullname:
os.rename(originalFullName, newFullname)
print("Renamed file " + repr(originalFullName) + " into " + repr(newFullname))
########################################
# now directories
########################################
while True:
renameDone = False
for root, dir, files in os.walk(unicode(orig)):
for d in dir:
newDirName = nameChange(d)
if newDirName != d:
fullDirName = os.path.join(root, d)
newFullDirName = os.path.join(root, newDirName)
os.rename(fullDirName, newFullDirName)
print("Renamed directory from " + repr(fullDirName) + " to " + repr(newFullDirName))
renameDone = True
if renameDone == False: break
