Argparse kullanarak özyinelemeli bir program yazıyorum. Tek gerekli argüman, harekete geçecek bir dosya (veya dosya). Yinelemeli olarak adlandırdığımda, dosya isimlerine ihtiyacım yok (yeni bir dizinde arama yapacağım gibi), fakat seçeneklere ihtiyacım var. Sorun, argparse'nin hem python programname.py -options arg FILENAME FILENAME
hem de python programname.py FILENAME FILENAME -options arg
'a izin vermesidir. Dikkatli bir şekilde bir '-' için arama yapabilirim ve bir tonluk bir ifadeyle çalışabilirim, ama daha iyi bir yol olmalı diye düşünüyorum.özyineleme
parser = argparse.ArgumentParser(description='Personal upload script. (defaults to ' + user + '@' + server + directory + ')')
parser.add_argument('files', nargs="+", help='file(s) to upload')
parser.add_argument('-s', metavar='example.com', default=server, help='server to upload to')
parser.add_argument('-u', metavar='username', default=user, help='ftp username')
parser.add_argument('-p', metavar='password', default=password, help='ftp password')
parser.add_argument('-d', metavar='example/', default=directory, help='directory to place file in')
parser.add_argument('-n', metavar='myfile.txt', help='name to save file as')
parser.add_argument('-c', metavar='###', help='chmod upload')
parser.add_argument('-l', action='store_true', help='print out new url(s)')
parser.add_argument('-r', action='store_true', help='recursive')
parser.add_argument('-F', action='store_true', help='force (overwrite files/create non-existing dirs)')
parser.add_argument('-v', action='store_true', help='verbose')
args = parser.parse_args()
çok teşekkürler: Burada
Önemli olduğundan emin, ama benim argparse bildirimleri vardır!