Python 获取文件并以另一种方法放入列表

Python 获取文件并以另一种方法放入列表,python,file,directory,Python,File,Directory,我有一个包含文件的目录,我需要得到这些文件的列表,以放入另一个方法中。它在webassets的上下文中(https://github.com/miracle2k/webassets)那么具体的情况是这样的, app_css = Bundle('app_assets/css/base.css', 'app_assets/css/layout.css',, output='output.css',

我有一个包含文件的目录,我需要得到这些文件的列表,以放入另一个方法中。它在webassets的上下文中(https://github.com/miracle2k/webassets)那么具体的情况是这样的,

app_css = Bundle('app_assets/css/base.css',
                 'app_assets/css/layout.css',,
                 output='output.css',
                 filters='cssmin')
我想这样:

app_css = Bundle( {any number of files in a directory},
                 output='output.css',
                 filters='cssmin')
因此,我需要检索一个文件列表,这些文件可能会有所不同,并且不是固定的,然后将该列表放入另一个函数中,而不是对每个更改进行硬编码

我从上次失败的尝试中得到以下信息:

csspath = "{}/static/css".format(os.path.dirname(__file__))
csss = [["app_assets/css/{}".format(files)] for files in os.listdir(csspath)]
app_css = Bundle("{}".format(*csss), output="packed.css", filters="cssmin")
但这是不对的。其中一个问题是,我只需要文件名,因为它是一个烧瓶蓝图,所以需要使用“app_assets/directory/files”格式


这是basic-python-should-be-easy-101,也是一次学习经历,我会学到的,但现在我回到这里,我对其他解决方案、建议等感兴趣。

如果您想在目录中获得所有
css
文件的列表,可以使用
glob
模块:

my_files = glob.glob('path_to_the_directory/*.css')
基本上,
glob
将像shell中的文件名一样展开。您还可以将其用于目录。例如:

glog.glob('My/dir/*/*.css')
将返回以“.css”结尾且位于“My/dir”子目录中的所有文件名的列表

编辑: 三行代码的“翻译”:

csspath = os.path.join(os.path.dirname(__file__), 'static', 'css')
csss = [os.path.join('app_assets', 'css', fname) for fname in os.listdir(csspath)]
app_css = Bundle(*csss, output='packed.css', filters='cssmin')
但是我不明白您是只是想改进它们还是原始版本不起作用。

Python教程,§4.7.4,:


第一位代码与第二位代码的关系如何?第一位是一般情况,第二位是具体情况,第三位是我为动态格式化第二部分所做的工作。在您的代码中,您似乎从目录('/static/css'目录)中获取文件名,然后,您希望获取具有这些文件名但位于不同目录(“app_assets/css”)下的文件。我可能误解了你的请求。好的,是的,最初不是很清楚,也许编辑更清楚。我也可以这样做,我的主要问题是在获取文件和需要数据的函数之间格式化数据。如果你不指定你想要什么,我也帮不上什么忙。我唯一能说的是,通常最好使用
os.path
函数来处理路径,因为它更简单且跨平台。就像我说的,当我第一次看它时,我错过了一些非常基本的东西,或者没有充分考虑它,然后继续。
app_css = Bundle(*['app_assets/css/base.css',
                 'app_assets/css/layout.css'],
                 **dict(output='output.css',
                 filters='cssmin'))