将多行字符串读入Python列表

2024-06-02 04:37:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个代码,可以输出目录中的所有.pdf文件。它输出一组字符串,如下所示

file0.PDF
file1.PDF
file2.PDF
file3.PDF

我想将这些字符串放入一个列表中,如下所示:

['file0.PDF', 'file1.PDF', 'file2.PDF', 'file3.PDF']

我用下面的代码成功地做到了这一点

import os 

list_final = []
for file in os.listdir(path):
    if ".PDF" in file:
        for value in file.split('\n'):
            list_final.append(value)
print(list_final)

这给出了上面格式的列表,这就是我想要的

有更好的方法吗?我觉得我的代码效率很低。我已经尝试过一系列的理解,比如下面,但我不确定为什么它不起作用

list_final = [value for value in file.split('\n')]

提前谢谢


Tags: 字符串代码in列表forpdfvalueos
2条回答

尝试使用^{},它将找到符合模式的所有文件:

import glob
print(glob.glob("*.pdf"))  # returns a list of filenames

或者,如果要使用当前路径以外的其他路径,只需将其连接到模式

print(glob.glob(path + "/*.pdf"))  # returns a list of filenames

Or even better,请使用os.path.join()

from os.path import join
glob.glob(join(path, "/*.pdf"))

您可以使用列表:

list_final = [e for e in os.listdir(path) if e.endswith('.PDF')]

或者您可以使用pathlib.Path.glob

from pathlib import Path

p = Path(path)
list_final = [e.name for e in p.glob('*.PDF')]

相关问题 更多 >