如何在python中从路径中分离文件名(PyQt4.QtCore.QString)

如何在python中从路径中分离文件名(PyQt4.QtCore.QString),python,pyqt4,Python,Pyqt4,如何使用Python将文件名与路径分开 我使用的是PyQt4,我的字符串不是Python字符串,而是PyQt4.QtCore.QString 我可以这样做: filename=my_path.split("/")[-1] 但是我认为分隔符是特定于操作系统的,而且我不能使用类似于OS.path.basename的东西,因为它只适用于原始python字符串,所以最好的选择是什么?在使用之前可以将QString转换为pythonstr。例如: filename_str = unicode(my_pa

如何使用Python将文件名与路径分开

我使用的是
PyQt4
,我的字符串不是Python字符串,而是
PyQt4.QtCore.QString

我可以这样做:

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

但是我认为分隔符是特定于操作系统的,而且我不能使用类似于
OS.path.basename的东西,因为它只适用于原始python字符串,所以最好的选择是什么?

在使用之前可以将
QString
转换为python
str
。例如:

filename_str = unicode(my_path)
…然后使用标准Python
os
函数获取文件名:

os.path.basename(filename_str)
或者,在单个步骤中:

os.path.basename(unicode(my_path))

注意:您可以通过使用或使用PyQt5完全避免此问题。通过这些更新,PyQt函数尽可能返回本机Python字符串(和其他变量),这样您就可以在不转换的情况下使用它们。这使事情变得简单了。

重复问题请参见@PrakharAgrawal关于存储为基本python字符串的路径的问题。始终使用
unicode
转换
QString
,以避免使用非ascii字符编码错误。