#python #command-line-interface #argparse
#питон #интерфейс командной строки #argparse
Вопрос:
Код должен создать каталог и переместить файл в него, и он отлично работает, когда не используется Argparse. С помощью Argparse я застрял в точке, где каталог не найден
Ошибка CLI:
Traceback (most recent call last): File "/Users/d/PycharmProjects/fileorganizer/addfile.py", line 20, in lt;modulegt; main() File "/Users/d/PycharmProjects/fileorganizer/addfile.py", line 17, in main crea_cartella("docs", directory) File "/Users/d/PycharmProjects/fileorganizer/addfile.py", line 8, in crea_cartella os.mkdir(newdirectory) FileNotFoundError: [Errno 2] No such file or directory: '../fileorganizer/files/docs'
Код:
import os import argparse def crea_cartella(nomeCartella, directory): newDirectory = os.path.join(directory, nomeCartella) os.mkdir(newDirectory) def main(): parser = argparse.ArgumentParser(description="sposta un file nella cartella di destinazione") parser.add_argument("--nomeFile", type=str, help="nome file compreso di estensione") args = parser.parse_args() directory = "../fileorganizer/files" crea_cartella("docs", directory) if __name__ == '__main__': main()
Комментарии:
1. Вы вообще не используете
args
(свои проанализированные аргументы). Ваш путь жестко закодирован"../fileorganizer/files"
. Есть ли у вас каталог, называемыйfileorganizer
одним каталогом, над вашим текущим рабочим каталогом? Предположительно, вы хотите перейти по другому пути в качестве аргумента--nomeFile
?2. —nomeFile-это имя файла, который я хочу переместить в другой каталог
3. crea_cartella() должен создать папку внутри /файловый органайзер/файлы
4. Но ты им не пользуешься. Вам нужно
args.nomeFile
где-то использовать. И я не вижу здесь ничего, что пытается переместить файл, только код, который пытается создать каталог. Опять же, у вас уже есть каталог, называемыйfileorganizer/
одним каталогом над вашим рабочим каталогом?5. да, у меня есть каталог выше. На данный момент мне не нужно использовать args.nomeFile, потому что я не могу создать новый каталог