【问题标题】:extract part of a filename python and insert into the MySQL DB提取文件名 python 的一部分并插入 MySQL DB
【发布时间】:2020-02-17 06:37:47
【问题描述】:

想要从目录中提取文件名并将其插入 MySQL DB。

使用 glob.glob 可以轻松地从特定目录中提取完整路径和文件名。我只需要文件名的第一部分。我想省略的部分是固定的,但我想保留的部分可能会改变,因为它取决于时间戳。

部分代码是这样的:

for name in glob.glob(r'/home/PROJ/result/*fileinfo.csv'):
    print (name)
    filename = os.path.basename(name)
    print(filename)

    filetail = str("_fileinfo.csv")
    print(filetail)

打印出来显示为

/home/PROJ/result/Line01-200213_1625_fileinfo.csv
Line01-200213_1625_fileinfo.csv
_fileinfo.csv
/home/PROJ/result/Line01-200215_1619_fileinfo.csv
Line01-200215_1619_fileinfo.csv
_fileinfo.csv 

我只想要 'lineNo-YYMMDD_hhmm' 部分作为文件名。从文件名中省略“_fileinfo.csv”部分并将其存储在文件中。然后插入数据库。

【问题讨论】:

  • 你在mysql访问方面已经走了多远,是否建立了连接,只需要预处理字符串并插入记录,例如?
  • 在其他模块中,我可以访问数据库并从那里提取参数以供使用。所以我想访问部分应该不是问题。但是还没有通过 Python 更新或插入数据。这将是这项工作的第 2 部分。由于缺乏经验而卡住了她。
  • 文件名是否总是以fileinfo.csv结尾?
  • 是的。该目录中还有其他具有相同“fileHeader”的文件。但现在只处理这种文件类型(_fileinfo.csv 的结尾)。如果需要可以使用相同的方式从我想的其他文件中提取fileHeader。

标签: python extract filenames


【解决方案1】:

为了提取你想要的部分,你可以去掉文件名:

for name in glob.glob(r'/home/PROJ/result/*fileinfo.csv'):
    file_prefix = os.path.basename(name)[:-(len('fileinfo.csv')+1)]
    print(file_prefix)

【讨论】:

  • 完美。谢谢!你能简单解释一下吗?最后一部分其实。 [:-(len('fileinfo.csv')+1)]
  • 我想我明白了。
猜你喜欢
  • 1970-01-01
  • 2013-08-07
  • 2018-01-24
  • 2014-06-15
  • 2022-12-01
  • 2019-10-28
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
相关资源
最近更新 更多