ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

从目录w / python中读取文件名

2019-07-13 16:55:51  阅读:254  来源: 互联网

标签:python filenames distutils py2exe pygame


我正在尝试制作一个pygame可执行文件.我将使用以下安装文件:

from distutils.core import setup
import py2exe

setup( 
  console = [ "game.py" ],
  author = "me",
  data_files = [ ( directory, [ file_1, file_2... ] ) ]
)

我已经让它在一个简单的游戏中工作得很好,但我要打包的游戏有> 700个图像文件.我的问题是,是否有一种简单的方法从目录中读取所有文件名,所以我不必单独列出每个文件名?

虽然有些文件按顺序编号,但大多数都有不同的根名称,因此编写一个生成相应字符串的循环不是一种选择.

谢谢

解决方法:

import os

data_files = [(x[0], x[2]) for x in os.walk(root_dir)]

http://docs.python.org/library/os.html#os.walk

这将为你提供root_dir中包含的每个子目录的文件(当然还有root_dir中的那些子目录)作为[[dirpath1,[file1,file2,…])格式的元组,(dirpath2,[file3, file4,…]),…]

我给你这个作为我的答案,因为我假设(或者更确切地说,希望)有这么多文件,你保持它们正确组织而不是将它们全部放在没有子目录的单个目录中.

已经有一段时间了,但回过头来看,我现在意识到,对于一长串文件,生成器表达式可能会更有效率.要做到这一点,需要进行非常简单的改变;用括号替换外括号,即

import os
data_file_gen = ((x[0], x[2]) for x in os.walk(root_dir))

然后可以在迭代data_files的任何地方使用data_file_gen(假设您只使用一次生成器;如果要多次使用生成器,则必须为每次使用重新创建生成器.在这种情况下,它可能更好只使用list方法,除非内存确实成为问题.)

标签:python,filenames,distutils,py2exe,pygame
来源: https://codeday.me/bug/20190713/1451471.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有