从打开的文件中获取文件名,而不是文件路径 [英] Get file name from an opened file, not a file path
本文介绍了从打开的文件中获取文件名,而不是文件路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我使用文件对话框在 PyQt5 应用程序中打开了一个名为 file1.mp3 的文件,并将其分配给如下变量:
Let's say I opened a file called file1.mp3 in a PyQt5 app using the file dialog and assigned it to a variable like this:
song = QFileDialog.getOpenFileName(self, "Open Song", "~", "Sound Files (*.mp3 *.ogg *.wav *.m4a)")
print(song[0])
url = QUrl.fromLocalFile(song[0])
self.playlist.addMedia(QMediaContent(url))
如何获取文件名而不是文件路径,以便在状态栏中显示它?或者更好的是,是否有我可以使用或创建的类似正在播放"的功能?
How can I get the file name instead of a file path so I can display it in a statusBar? Or even better, is there a "now playing"-like function I could use or create?
推荐答案
有几种简单的方法可以获取文件名:
There are several simple ways to get the name of a file:
- 使用
QUrl
:
song, _ = QFileDialog.getOpenFileName(self, "Open Song", "~", "Sound Files (*.mp3 *.ogg *.wav *.m4a)")
print(song)
url = QUrl.fromLocalFile(song)
self.playlist.addMedia(QMediaContent(url))
your_statusbar.showMessage("now playing {}".format(url.fileName()))
- 使用
QFileInfo
:
song, _ = QFileDialog.getOpenFileName(self, "Open Song", "~", "Sound Files (*.mp3 *.ogg *.wav *.m4a)")
print(song)
url = QUrl.fromLocalFile(song)
self.playlist.addMedia(QMediaContent(url))
filename = QFileInfo(song).fileName()
your_statusbar.showMessage("now playing {}".format(filename))
- 使用
pathlib
:
song, _ = QFileDialog.getOpenFileName(self, "Open Song", "~", "Sound Files (*.mp3 *.ogg *.wav *.m4a)")
print(song)
url = QUrl.fromLocalFile(song)
self.playlist.addMedia(QMediaContent(url))
from pathlib import Path
filename = Path(song).name
your_statusbar.showMessage("now playing {}".format(filename))
- 使用
os
:
song, _ = QFileDialog.getOpenFileName(self, "Open Song", "~", "Sound Files (*.mp3 *.ogg *.wav *.m4a)")
print(song)
url = QUrl.fromLocalFile(song)
self.playlist.addMedia(QMediaContent(url))
import os
filename = song.rstrip(os.sep)
your_statusbar.showMessage("now playing {}".format(filename))
或:
song, _ = QFileDialog.getOpenFileName(self, "Open Song", "~", "Sound Files (*.mp3 *.ogg *.wav *.m4a)")
print(song)
url = QUrl.fromLocalFile(song)
self.playlist.addMedia(QMediaContent(url))
import os
_ , filename = os.path.split(os.sep)
your_statusbar.showMessage("now playing {}".format(filename))
这篇关于从打开的文件中获取文件名,而不是文件路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文