我正在尝试使用python在Windows上创建ls脚本。我安装了win32api模块,但我真的不知道要使用它。例如,我想添加一个选项-l来查看文件的大小,以及一个选项-c来计算文件夹中文件的数量。 这是我目前的代码
import os
import argparse
import win32api
def parse_args():
parser = argparse.ArgumentParser(description = 'Affiche les fichiers contenus dans un dossier')
parser.add_argument('directory', type=str, nargs='?', default='.')
parser.add_argument('--all','-a', action='store_true', help= "Inclus les fichiers cachés")
parser.add_argument('--recursive','-R', action='store_true', help=" Recherche recursive descend dans les dossiers")
parser.add_argument('--lenght','-l', action='store_true', help= "Affiche la taille des fichiers")
parser.add_argument('--count','-c', action='store_true', help=" Indique le nombre de lignes des fichiers")
parser.add_argument('--directories','-d', action='store_true', help=" N'affiche que les dossiers et le nombre de fichiers contenus")
parser.add_argument('--reverse','-r', action='store_true', help="Inverse l'ordre d'affichage")
return parser.parse_args()
def ls(args):
if args.all:
print ("afficher tous les dossiers et fichers cachés")
ls_all(args)
if args.recursive:
print ("Recherche recursive descend dans les dossiers")
ls_recursive(args)
if args.lenght:
print ("affiche la taille des fichiers")
ls_long(args)
if args.count:
print ("indique le nombre de lignes des fichiers")
ls_count(args)
if args.directories:
print ("N'affiche que les dossiers et le nombre de fichiers contenus")
ls_directories(args)
if args.reverse:
print ("Inverse l'ordre d'affichage")
ls_reverse(args)
else:
for fn in listdir(args):
print (fn)
def ls_all(args):
attribute = win32api.GetFileAttributes(args.directory)
# def ls_long(args):
def listdir(args):
dirs = os.listdir(args.directory)
dirs.sort()
return dirs
if __name__ == '__main__':
args = parse_args()
ls(args)
答案 0 :(得分:0)
for root, dirs, files in os.walk(args.directory):
for f in files:
size += os.path.getsize(os.path.join(root, f))
print size
print len([name for name in os.listdir(args.directory) if os.path.isfile(os.path.join(args.directory, name))])