我有一个包含数十万条路径的 .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个赞
我们不可能仅通过字符串来判断它是文件还是路径,因为扩展名只是程序选择以某种方式解码的任意可接受的字符串。
话虽如此,如果我遇到同样的问题,我会尽力使用以下伪代码进行估计:
创建一个哈希映射(或像在 Python 中那样的字典)
对于文件的每一行,读取最后一位并查看是否有“.”。在最后一条路上
在散列映射上为它创建一个密钥,其中包含您遇到“可能的扩展”次数的计数器。
在浏览完所有列表后,您将获得可能的扩展名以及您遇到过的扩展名的集合。假设只有 1 次出现(或任何其他低任意数)的是路径而不是扩展。
这种启发式的基础是,一个人不太可能在他们的桌面上有很多独特的扩展——但这只是我提出的一个假设。
添加回答
举报
0/150
提交
取消