如何获取文件路径+文件名到列表中?
这个问题在这里已经有了答案:
由于您可以访问目录路径,因此您可以执行以下操作:
dir = "train_dataham"
output = map(lambda p: os.path.join(dir, p), os.listdir(dir))
或更简单
output = [os.path.join(dir, p) for p in os.listdir(dir)]
os.path.join
会将你的目录路径加入其中的文件名。
如果您使用的是Python 3.5或更高版本,请跳过os.listdir
以支持os.scandir
,这会更有效,并为您工作( path
是结果对象的属性):
hamFileNames = [entry.path for entry in os.scandir(r"train_dataham")]
这也可以让你便宜地过滤( scandir
包括一些免费的文件信息,不需要stat
文件),例如只保留文件(没有目录或特殊的文件系统对象):
hamFileNames = [entry.path for entry in os.scandir(r"train_dataham") if entry.is_file()]
如果你在3.4或更低版本,你可能想看看PyPI scandir
模块(它在早期的Python上提供了相同的API)。
另请注意:我使用了一个原始字符串作为路径; 而h
恰好在没有它的情况下工作,您应该始终使用原始字符串作为Windows路径文本,否则当您尝试使用"train_datafoo"
(其中f
是ASCII换页字符)时会遇到令人讨厌的冲击,而r"train_datafoo"
工作得很好(因为r
前缀可以防止除引号字符之外的任何内容的反斜线插值)。
上一篇: How to get file path + file name into a list?
下一篇: How can I automatically open all text files in a given folder?