在修复一个用户的answer on AskUbuntu时,我发现了一个小问题。代码本身很简单:手术室步行,递归获取目录中所有文件的总和。在
但它在符号链接上断开了:
$ python test_code2.py $HOME
Traceback (most recent call last):
File "test_code2.py", line 8, in <module>
space += os.stat(os.path.join(subdir, f)).st_size
OSError: [Errno 2] No such file or directory: '/home/xieerqi/.kde/socket-eagle'
问题是,如何告诉python忽略这些文件并避免求和?在
解决方案:
正如评论中所建议的,我添加了os.path.isfile()
check,现在它工作得很好,并且为我的主目录提供了正确的大小
正如anttihaapala在一篇评论中提到的,脚本不会在符号链接上中断,而是在断开的symlinks上中断。避免这种情况的一种方法是使用
try/except
:作为一个副作用,它提供了关于可能断开的链接的信息。在
是的,
os.path.isfile
是个好办法。然而,以下版本的可能更节省内存。在相关问题 更多 >
编程相关推荐