にos.walk使用しながら、これは、指定したサイズよりも大きいですファイルを検索するスクリプトです:ERRNO 2のPython
def size_scan(folder, size=100000000):
"""Scan folder for files bigger than specified size
folder: abspath
size: size in bytes
"""
flag = False
for folder, subfolders, files in os.walk(folder):
# skip 'anaconda3' folder
if 'anaconda3' in folder:
continue
for file in files:
file_path = os.path.join(folder, file)
if os.path.getsize(file_path) > size:
print(file_path, ':', os.path.getsize(file_path))
flag = True
if not flag:
print('There is nothing, Cleric')
Linuxでのルートフォルダをスキャンしながら、私は、次のエラーメッセージが表示されます。
Traceback (most recent call last):
File "<ipython-input-123-d2865b8a190c>", line 1, in <module>
runfile('/home/ozramsay/Code/sizescan.py', wdir='/home/ozramsay/Code')
File "/home/ozramsay/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 880, in runfile
execfile(filename, namespace)
File "/home/ozramsay/anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/home/ozramsay/Code/sizescan.py", line 32, in <module>
size_scan('/')
File "/home/ozramsay/Code/sizescan.py", line 25, in size_scan
if os.path.getsize(file_path) > size:
File "/home/ozramsay/anaconda3/lib/python3.6/genericpath.py", line 50, in getsize
return os.stat(filename).st_size
FileNotFoundError: [Errno 2] No such file or directory: '/run/udev/link.dvdrw'
Pythonインタプリタが自分自身をスキャンすることができないので、私は検索から「anaconda3」フォルダをスキップしようとしました(上記のコードで#skip anacondaフォルダにマークされています)。ただし、エラーメッセージは同じままです。
誰でも説明していただけますか?
(質問のような種類がここでは許されないと、編集する必要がある場合は私に知らせてください。ありがとう)
この機能を実行するフォルダを教えてください。 – zezollo
'/ run/udev/link.dvdrw'はDVDドライブと関係があります(これは通常、'/run/udev/'もスキャンされていますか?おそらくシンボリックリンク?)。おそらく '' getsize'へのパスを渡す前に['os.path.isfile'](https://docs.python.org/3/library/os.path.html#os.path.isfile)を実行してください。 –
zezollo、私Linux Mintのルートフォルダでこの関数を実行してください:size_scan( '/') –