Итак, как отмечали другие комментаторы, вам нужно использовать argv[2]
вместо argv[1]
Это связано с тем, что в bash argv[0]
выполняется сценарий python, а argv[1]
в вашем случае становится '$INPUT_PATH'
Но это не решит твою проблему.
В вашем скрипте вам нужно удалить '
, окружающие $INPUT_PATH
и $OUTPUT_PATH
, чтобы последняя строка стала,
python csvFile.py $INPUT_PATH $OUTPUT_PATH
'$INPUT_PATH'
отправляет string
$INPUT_PATH
вашему скрипту на python, тогда как
$INPUT_PATH
отправляет 'home/pg/Public/test_data/test0002_2files_to_1flow/csv64_in/'
или любое другое значение, которое вы выбрали для $INPUT_PATH
И, наконец, вам нужно изменить значения $INPUT_PATH
и $OUTPUT_PATH
INPUT_PATH='home/pg/Public/test_data/test0002_2files_to_1flow/csv64_in/'
OUTPUT_PATH='home/pg/Public/test_data/test0002_2files_to_1flow/'
должно стать
INPUT_PATH='/home/pg/Public/test_data/test0002_2files_to_1flow/csv64_in/'
OUTPUT_PATH='/home/pg/Public/test_data/test0002_2files_to_1flow/'
/
в начале дает полный путь к каталогу или файлу, если вы не использовали /
, то он становится относительным путем.
В вашем bash-скрипте вы перемещаетесь по папкам, используя в результате cd
, папка
'home/pg/Public/test_data/test0002_2files_to_1flow/csv_out'
будет создано в каталоге,
home/pg/Documents/LMS/kanjiforbeginner/convertToYAML/
Добавление /
в начале к $INPUT_PATH
и $OUTPUT_PATH
, как показано выше, гарантирует, что ваш код:
- ищет ввод в нужном каталоге
- создает папку в нужном каталоге
редактирование:
Как Ким предложил ниже, последняя строка в скрипте должна быть:
python csvFile.py "$INPUT_PATH" "$OUTPUT_PATH"
Это в случае, если $INPUT_PATH
или $OUTPUT_PATH
содержит пробелы или специальные символы.