为了账号安全,请及时绑定邮箱和手机立即绑定

检查字符串是否包含任何文件格式的最有效方法?

检查字符串是否包含任何文件格式的最有效方法?

阿波罗的战车 2023-06-13 15:02:07
我有一个包含数十万条路径的 .txt,我只需要检查每一行是文件夹还是文件。硬盘不在身边,无法使用os功能模块os.path.isdir()。我试过下面的代码,但它并不完美,因为.最后包含一些文件夹。for row in files:    if (row[-6:].find(".") < 0):        folders_count += 1如果字符串的结尾包含任何已知的文件格式(.zip、.pdf、.doc ...),则不值得测试,因为此 HD 中有数十种不同的文件格式。当我的代码读取 .txt 时,它会将每一行作为字符串存储在数组中,因此我的代码应该使用字符串格式。文件夹路径示例:'path1/path2/truckMV.34'文件路径示例:'path1/path2/certificates.pdf'
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

我们不可能仅通过字符串来判断它是文件还是路径,因为扩展名只是程序选择以某种方式解码的任意可接受的字符串。

话虽如此,如果我遇到同样的问题,我会尽力使用以下伪代码进行估计:

  1. 创建一个哈希映射(或像在 Python 中那样的字典)

  2. 对于文件的每一行,读取最后一位并查看是否有“.”。在最后一条路上

  3. 在散列映射上为它创建一个密钥,其中包含您遇到“可能的扩展”次数的计数器。

  4. 在浏览完所有列表后,您将获得可能的扩展名以及您遇到过的扩展名的集合。假设只有 1 次出现(或任何其他低任意数)的是路径而不是扩展。

这种启发式的基础是,一个人不太可能在他们的桌面上有很多独特的扩展——但这只是我提出的一个假设。


查看完整回答
反对 回复 2023-06-13
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信