Pyside QFileDialog.getOpenFileNames 如何获取文件名和路径为字符串而不是元组

0 投票
1 回答
1446 浏览
提问于 2025-04-18 03:03

这行代码返回的是文件名和路径,格式是unicode,我用不了。怎么才能只得到文件名和字符串呢?

代码:

logfile = QFileDialog.getOpenFileNames(None, caption, directory, filter_mask)[0]

print 'Selected Log file is :', str(logfile)

print logfile

输出:

Selected Log file is : [u'C:\\Temp\\!!!readme.txt']

[u'C:\\Temp\\!!!readme.txt']

求助 我需要日志文件的路径是 'C:\Temp\readme.txt'。我该怎么做呢?

1 个回答

1

看起来 QFileDialog.getOpenFileNames 会返回一个字符串列表,所以你只需要取第一个元素就可以了:

>>> logFile = [u'C:\\Temp\\!!!readme.txt']
>>> f = logFile[0]
>>> f
u'C:\\Temp\\!!!readme.txt'

这里的 u 表示这是一个unicode字符串。如果你真的不想要unicode字符串,可以直接用 str

>>> str(f)
'C:\\Temp\\!!!readme.txt'

补充:根据文档,它返回的是一个QString列表。所以你不能使用QString的方法,比如 .first()

补充2:哇,我没注意到你的 [0]。可能我太晚了……所以,这有点奇怪。也许可以试试 (QFileDialog.getOpenFileNames(None, caption, directory, filter_mask))[0]

撰写回答