我创建了下面的python脚本来列出directoris/sub目录中的所有文件及其大小
代码A
files = glob.glob("%s/*.*"%os.getcwd())
sorted_file = sorted(files, key=os.path.getsize)
for path, dirs, files in os.walk(os.getcwd()):
for d in dirs:
for f in glob.iglob(os.path.join(path, d, '*.*')):
print f ,os.path.getsize(f)
当它通过目录运行时,我得到以下错误:
^{pr2}$奇怪的是,当我在unix中打开/My/Folder/
并执行ls -l
操作时,我可以看到{Symbolic Link
代码B
for path, subdirs, files in os.walk(os.getcwd()):
for name in files:
f = os.path.join(path, name)
print f,os.path.getsize(f)
错误:
/My/Folder/BEA
Traceback (most recent call last):
File "Test.py", line 19, in <module>
print f,os.path.getsize(f)
File "/usr/lib/python2.6/genericpath.py", line 49, in getsize
return os.stat(filename).st_size
OSError: [Errno 2] No such file or directory: '/My/Folder/BEA'
在这两种情况下,BEA和Perlx.x都是Symbolic Links
,它们存在于指定的文件夹中。我怎样才能消除这个错误?在
为了消除错误,我添加了一个额外的条件来检查文件是否链接。在
相关问题 更多 >
编程相关推荐