Pythonic方法从文件夹中创建文件名(没有文件扩展名)的字符串列表?

时间:2017-08-21 12:20:52

标签: python python-3.x list directory

我的计算机中有一个包含许多.txt个文件的文件夹:

file_one.txt    --> location = r'C:\Users\User\data\file_one.txt'
file_two.txt    --> location = r'C:\Users\User\data\file_two.txt'
file_forty.txt  --> location = r'C:\Users\User\data\file_forty.txt'

如何将文件名称(不包含.txt部分)转换为如下列表:

list_from_files = ['file_one', 'file_two', 'file_forty']

2 个答案:

答案 0 :(得分:10)

您可以使用pathlib 1 。它有一个专用的stem属性,它返回没有后缀的文件名:

import pathlib

p = pathlib.Path('.')   # current directory, insert your directory here
[x.stem for x in p.glob('*.txt')]

1 pathlibstandard library in Python 3.4+的一部分 - 但您可以使用PyPI和conda上提供的第三方(backport-)软件包,如pathlibpathlib2较旧的Python版本。

答案 1 :(得分:4)

我写了这个,但我更喜欢MSeifert的回答。我检查过,并且在Python 2.7中也可以使用pathlib。

您可以尝试这样的事情

import os
import glob
print([os.path.splitext(os.path.split(x)[-1])[0] for x in glob.glob("/path/to/dir/*.txt")])

它使用列表推导,您可以阅读here

glob()中,您可以添加所选目录的路径。

os.path.split(x)[-1]获取没有路径信息的文件名

os.path.splitext(...)[0]用于将filename.extension拆分为元组`(文件名,扩展名),其中第一个元素被选中以获取文件名。