获取某文件夹下所有文件、一级子文件夹的大小

import os
from os.path import getsize,join
input=input('请输入要查询的根目录')
def function(root_dir):
    # 初始化函数
    def StrOfSize(size):
        '''
        auth: wangshengke@kedacom.com ;科达柯大侠
        递归实现,精确为最大单位值 + 小数点后三位
        '''

        def strofsize(integer, remainder, level):
            if integer >= 1024:
                remainder = integer % 1024
                integer //= 1024
                level += 1
                return strofsize(integer, remainder, level)
            else:
                return integer, remainder, level

        units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']
        integer, remainder, level = strofsize(size, 0, 0)
        if level + 1 > len(units):
            level = -1
        return ('{}.{:>03d} {}'.format(integer, remainder, units[level]))

    def getdirsize(dir):
        size = 0
        for root, dirs, files in os.walk(dir):
            size += sum([getsize(join(root, name)) for name in files])
        return size

    # 初始化数据
    os.chdir(root_dir)
    result_list = []
    files = os.listdir()
    # 开始获取文件、文件夹大小
    sizelist_bytes = map(getdirsize, files)  # 获取大小
    sizelist_result = list(map(StrOfSize, sizelist_bytes))  # 转为其他格式
    # 合并字符串
    for i in range(len(files)):
        result = files[i] + ':' + sizelist_result[i]
        result_list.append(result)
    print(result_list)
function(input)

用到了另外两位程序员分享的函数,一个是StrOfSize()和getdirsize()虽然第一个还不是特别懂,但就先拿来用上了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,可以实现QMediaPlayer和QMediaPlaylist的目录功能: ```python import os from PyQt5.QtWidgets import * from PyQt5.QtMultimedia import * class MediaPlayer(QWidget): def __init__(self): super().__init__() # 初始化UI界面 self.init_ui() # 初始化播放器和播放列表 self.media_player = QMediaPlayer(self) self.playlist = QMediaPlaylist(self.media_player) self.media_player.setPlaylist(self.playlist) # 添加音乐文件到播放列表 self.add_music_to_playlist("E:/Music") def init_ui(self): # 设置窗口标题和大小 self.setWindowTitle("Media Player") self.setGeometry(100, 100, 800, 600) # 创建界面布局 main_layout = QVBoxLayout() # 创建播放器控件和播放列表控件 self.player_widget = QVideoWidget(self) self.playlist_view = QListView(self) self.playlist_view.setModel(self.playlist) # 将控件添加到布局中 main_layout.addWidget(self.player_widget) main_layout.addWidget(self.playlist_view) # 设置布局 self.setLayout(main_layout) # 连接信号和槽函数 self.playlist.currentIndexChanged.connect(self.media_player.setMedia) self.media_player.setVideoOutput(self.player_widget) def add_music_to_playlist(self, dir_path, level=0): if level >= 4: return for file_name in os.listdir(dir_path): file_path = os.path.join(dir_path, file_name) if os.path.isdir(file_path): if not any(file_name.endswith(ext) for ext in (".mp3", ".mpe")): continue self.playlist.addMedia(QMediaContent()) self.playlist.media(self.playlist.mediaCount() - 1).setPlaylist(self.playlist) item = QStandardItem(file_name) item.setData(file_path, Qt.UserRole) self.playlist_view.model().appendRow(item) self.add_music_to_playlist(file_path, level + 1) elif os.path.isfile(file_path): if not file_name.endswith(".mp3"): continue self.playlist.addMedia(QMediaContent(QUrl.fromLocalFile(file_path))) item = QStandardItem(file_name) item.setData(file_path, Qt.UserRole) self.playlist_view.model().appendRow(item) if __name__ == "__main__": app = QApplication([]) media_player = MediaPlayer() media_player.show() app.exec_() ``` 在这个示例中,我们通过递归遍历目录树来获取包含`*.mp3`和`*.mpe`文件文件夹文件。然后,我们将它们添加到QMediaPlaylist中,并在QListView中显示它们。最后,我们使用QMediaPlayer来播放选择的媒体。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值