Bu, python'da dosyaların aynı dizinde olması gerekmeyen durumları ele alan bir çözümdür.
import os
torename = []
rootdir = "The main directory"
logfile = "Path to log file" #Eg: logfile = "/home/prasanth/renamelog"
for (path, dirs, files) in os.walk(rootdir):
for dirname in dirs:
if ':' in dirname:
torename.append(os.path.join(path, dirname))
for filename in files:
if ':' in filename:
torename.append(os.path.join(path, filename))
print "No of files/dirs to rename =", len(torename)
a = raw_input("Continue? (y/n) ")
if a == 'y':
torename.reverse()
for oldname in torename:
directory, filename = os.path.split(oldname)
newname = os.path.join(directory, filename.replace(':', '-'))
command = 'mv %s %s > /dev/null' % (repr(oldname), repr(newname))
os.system(command)
f = open(logfile, 'a')
f.write(oldname + '\n')
f.close()
else:
print "Aborted."
- Bunu bir dosyaya kaydedin (diyelim) rename.py.
- Değişim
rootdir
göz altında dıştaki dizine (izin ~ gibi kullan tam yol adı / ile başlayan. Hiçbir kestirme veya env değişkenleri). Özel karakterlerin önüne \ koymanıza gerek yok - örneğin en dıştaki dir /.../DHD'm ise rootdir = "/.../My HDD"
NOT rootdir = "/.../My\ HDD"
("" notlarını not edin) [Sadece python'a aşina olabileceğiniz için bu açık oluyorum. amaçlanmıştır.]
logfile
İstediğiniz günlük dosyasının konumunu değiştirin . Sonunda, bu dosya, ileride başvurmak üzere yeniden adlandırılan dosyaların listesini içerecektir.
- Arayın
python rename.py
.
Uyarı: Tüm GB müziği riske atmadan önce küçük bir örnek üzerinde test yapın.
Ayrıntılar: Yeniden adlandırma, en içteki dosyalardan dışa doğru gerçekleştirilir.
find .
, bir alt dizinin adının çıktısında içeriğinden önce gelir. Eğer bir dosya varsa, yani/1:/2:
ilk/1:/
olarak değiştirildi edilecektir/1-/
. Şimdi adlandırmak edemez/1:/2:
için/1-/2-
çünkü/1:/2:
yok.