2016-04-06 9 views
1

Dosya adı Python kullanarak yoldan nasıl ayrılır?Dosya adı python'daki yoldan nasıl ayrılır (PyQt4.QtCore.QString)

filename=my_path.split("/")[-1] 

Ama aynı zamanda ben kullanamıyorum, ayırıcı OS özel olduğunu düşünüyorum: Ben gibi işlemler yapabilir PyQt4.QtCore.QString

Ben PyQt4 kullanıyorum ve benim dize Python dize değil ama

, os.path.basename gibi bir şey sadece orijinal python dizesi için çalıştığı için, bunu yapmak için en iyi seçenek hangisi olacak?

+0

Tekrarlanan soru http://stackoverflow.com/questions/8384737/python-extract-file-name-from-path-no-matter-what-the-os-path-format –

+0

@PrakharAgrawal bu soru bakın Temel python dizesi olarak depolanan yol hakkında. – mrgloom

cevap

1

QString'u kullanmadan önce Python str'a dönüştürebilirsiniz. Örneğin: tek bir adımda,

os.path.basename(filename_str) 

Veya:

filename_str = unicode(my_path) 

... ve sonra dosya adını almak için standart Python os işlevlerini kullanın

os.path.basename(unicode(my_path)) 

Not önleyebilirsiniz Bu sorun, newer PyQt4 API v2'u kullanarak veya alternatif olarak PyQt5'i kullanarak. Bu güncellemelerle PyQt işlevleri mümkün olduğunda yerel Python dizelerini (ve diğer değişkenleri) döndürür, böylece dönüştürmeden bunlarla çalışabilirsiniz. Bu işleri çok daha kolay hale getirir.

+1

Ascii olmayan karakterlerle kodlama hatalarından kaçınmak için her zaman 'QString'i dönüştürmek için' unicode' kullanın. – ekhumoro

+0

Teşekkürler @ekhumoro, güncellendi. – mfitzp