我的计算机中有一个包含许多.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']
答案 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
pathlib
是standard library in Python 3.4+的一部分 - 但您可以使用PyPI和conda上提供的第三方(backport-)软件包,如pathlib
和pathlib2
较旧的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
拆分为元组`(文件名,扩展名),其中第一个元素被选中以获取文件名。