【问题标题】:Find file by part of filename in python在python中按文件名的一部分查找文件
【发布时间】:2021-09-26 11:49:29
【问题描述】:

我需要按部分文件名搜索。

我的数据库中有一个包含产品名称的列,每个产品都有一个用于描述的文件,所以我需要将此文件添加到我的数据库中的相同原始文件中。

我想新增一个名为description的列,并在列名上添加同名文件的内容,但列名和文件名不同,例如数据库中名为cs12的产品和datasheet-cs12 或 guide-cs12 或文件中的任何类似内容

【问题讨论】:

  • 所以,嗨,“我如何在文件中搜索文本”确实是您可以自己进一步研究的内容,我打赌您已经这样做了。那么,你到底卡在哪里了?
  • 这能回答你的问题吗? How to search for a string in text files?
  • 是的,我之前搜索过,但是我需要使用“like”语句或“percent”作为 SQL,这意味着我可以检索包含与我搜索的文件相同的单词的所有文件 if这个词之前或之后有任何词,因为我不能准确地输入行,我只是根据文件名上的确切词搜索。
  • 您的问题没有解释您的任何限制。相反,仅仅寻找像你这样的字符串 not 需要任何“LIKE”语法,就像在 SQL 中一样。真的不清楚问题出在哪里。
  • 我的数据库中有一个包含产品名称的列,并且每个产品都有一个用于描述的文件,因此我需要将此文件添加到数据库中的相同原始文件中。我想添加一个名为description的新列,并在列名上添加同名文件的包含,但列和文件中的名称不同,例如数据库和数据表中名为cs12的产品- cs12 在文件中。

标签: python python-3.x database search text


【解决方案1】:

你需要弄清楚如何做

  1. 获取文件夹中的文件列表
  2. 在该列表的每个元素中查找子字符串

回复 1.:https://stackoverflow.com/search?q=%5Bpython%5D+get+list+of+files+in+directory

关于 2.:

你有一个逻辑问题。可能有多个文件匹配任何字符串。所以,我认为你根本无法完全自动解决这个问题。如果您有两个文件datasheet_BAT54alternative.txtinfo_BAT54A,以及包含字符串BAT54BAT54A 的两行怎么办。 “BAT54”与“BAT54A”不同。因此,您将始终需要处理候选人名单。如果幸运的话,该列表只有一个条目:

def give_candidates(list_of_file_names, substring):
    return [ fname for fname in file_names if substring.lower() in fname.lower() ]

【讨论】:

    猜你喜欢
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 2020-02-20
    • 2017-05-12
    相关资源
    最近更新 更多