【发布时间】:2017-12-13 03:48:08
【问题描述】:
我正在尝试列出一个目录中所有文件的列表,文件名以 .root 结尾。
在阅读了论坛上的一些文章后,我尝试使用 glob 和 os.listdir 的基本策略,但我都遇到了麻烦
首先,当我使用
import glob
filelist = glob.glob('/home/usr/dir/*.root')
它确实列出了所有以 .root 结尾的文件名的字符串列表,但我仍然遇到问题。
我想成为文件名为“/dir/.root”的字符串列表,但该字符串的完整路径为“/home/usr/dir/.root”
其次,如果我使用 os.listdir,我会遇到
path = '/home/usr/'
filelist = os.listdir(path + 'dir/*.root')
syntax error
这告诉我,我不仅可以获得 .root 的文件列表。
总之,我想创建一个文件名列表,以 .root 结尾并位于我的 /home/usr/dir 中,同时切断“/home/usr”部分。如果我使用globe,我会遇到/home/usr/ 的麻烦。如果我使用 os.listdir,我不能指定“.root”结尾。
【问题讨论】:
-
如果你希望文件路径是相对的,你必须首先决定相对于什么。到当前工作目录?到特定目录?
-
我在这里留下了一个简单而简洁的相对 globbing 函数:stackoverflow.com/a/57514353/790075