如何用python将目录中的每个文件的名称放入一个列表中?

2024-06-16 11:34:50 发布

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

我将一些正则表达式应用到一个满是.txt文件的文件夹中,以便提取如下特定模式:

def retrive(directory, a_regex):
    for filename in glob.glob(os.path.join(directory, '*.txt')):
        with open(filename, 'r') as file:
            important_stuff = re.findall(a_regex, file.read(), re.S)
            my_list = [tuple([j.split()[0] for j in i]) for i in important_stuff]
            print my_list


lists_per_file = retrive(directory,regex_)

输出是列表中所有文件的所需内容:

[interesting stuff 1]
[interesting stuff 2]
[interesting stuff 3]
...
[interesting stuff n]
[interesting stuff n-1]

如何在列表中携带或绑定每个文档文件的名称,例如:

[interesting stuff 1], name_of_document_1
[interesting stuff 2], name_of_document_2
[interesting stuff 3],name_of_document_3
...
[interesting stuff n], name_of_document_n
[interesting stuff n-1], name_of_document_n-1

提前谢谢各位


Tags: 文件ofnameintxtforfilenamedocument
1条回答
网友
1楼 · 发布于 2024-06-16 11:34:50

如果要打印列表和文件名,但两者之间没有换行符,则必须首先将列表转换为字符串,然后从列表周围去掉括号。之后,您可以从您拥有的文件路径中获取文件名,并将两者放在一起

参见下面的代码

def retrive(directory, a_regex):
    for filename in glob.glob(os.path.join(directory, '*.txt')):
        with open(filename, 'r') as file:
            important_stuff = re.findall(a_regex, file.read(), re.S)
            my_list = [tuple([j.split()[0] for j in i]) for i in important_stuff]
            # print my_list # old line
            print str(my_list).strip('[]') + filename.split('/')[-1]


lists_per_file = retrive(directory,regex_)

相关问题 更多 >