我被卡住了。我需要使用Python编写代码以按文件大小查找文件,并将其名称和大小添加到列表中。我有一个程序,通过名称在目录中搜索文件。我需要使用get opts进行另一个标记以按大小进行搜索。
import getopt
import sys
import os
from os import listdir, walk
from os.path import isfile, join
def find_by_name(name, path, result): #Define a function to search the file by it's name
result = []
for root, dirs, files in os.walk(path):
if name in files:
result.append(os.path.join(name)) #Join the file to the list called result
else:
print ("Nothing was found by %s" % name)
return result
def main():
path_dir = raw_input("Select the directory you want to search: ")
results = []
try:
opts, args = getopt.getopt(sys.argv[1:], 'n:y:d:')
except getopt.GetoptError as err:
print (err)
sys.exit
for o, a in opts:
if o in ("-n", "--name"):
pro = find_by_name(a, path_dir, results)
if __name__ == "__main__":
main()
os.walk为您提供路径和文件名。然后您可以使用
stats = os.stat(path+name)
stats.st_size
获取文件大小(以字节为单位)。因此您可以将当前功能更改为类似以下内容:
def find_by_size(size, path):
result = []
for root, dirs, files in os.walk(path):
if os.stat(path+name).st_size == size:
result.append((os.path.join(name), stats.st_size))
else:
print ("Nothing of size %d was found" % size)
return result
同样,您也不需要传递结果,因为您只是将其替换为空列表。Python可以从函数返回列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句