我正在尝试制作一个pygame可执行文件。我将使用以下安装文件:
from distutils.core import setup
import py2exe
setup(
console = [ "game.py" ],
author = "me",
data_files = [ ( directory, [ file_1, file_2... ] ) ]
)
我已经让这个在一个简单的游戏上运行良好,但我想打包的游戏有700个图像文件。我的问题是,有没有一种简单的方法可以从目录中读取所有文件名,这样我就不必分别列出每个文件名了?
虽然有些文件是按顺序编号的,但大多数文件的根名称不同,因此不能选择编写循环来生成适当的字符串。
谢谢
os
模块有一个名为listdir
的方法,该方法采用路径并将内容作为列表返回。试试这个
http://docs.python.org/library/os.html#os.walk
这将把
root_dir
中包含的每个子目录(当然还有root_dir
本身中的子目录)的文件作为元组,格式为[(dirpath1, [file1, file2, ...]), (dirpath2, [file3, file4, ...]), ...]
我给你这个作为我的答案,是因为我假设(或者更确切地说,希望)有这么多文件,你要把它们妥善地组织起来,而不是把它们都放在一个没有子目录的目录中。
已经有一段时间了,但回到这里,我现在意识到,对于一长串文件,生成器表达式可能更有效。为此,需要做一个非常简单的更改;用括号替换外括号,即
然后
data_file_gen
可以在迭代data_files
的任何地方使用(假设只使用一次生成器;如果生成器要多次使用,则每次使用都必须重新创建生成器。在这种情况下,最好使用list方法,除非内存确实成为问题)。相关问题 更多 >
编程相关推荐