Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
argulator
0 / 0 / 0
Регистрация: 01.07.2017
Сообщений: 2
1

Скрипт не принимает аргументы командной строки

01.07.2017, 14:46. Просмотров 284. Ответов 1
Метки нет (Все метки)

После решения проблем с изменением списка скрипт работал замечательно до тех пор, пока я не столкнулся с необходимостью ввести аргументы через командную строку. Я, вспоминая старый материал на эту тему, пришёл к следующему (обратите внимание на строки 1-6):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os
import sys
 
if len(sys.argv) != 2:
    x=len(sys.argv)
    print("Error: Invalid number of arguments:",x)
else:
    trigger=sys.argv[1]
    n=1
    with open('words.txt','r') as imported, open('output.txt','w') as output:
        print("Dictionary has been uploaded")
        for word in imported:
            word=word.lower()
            if not trigger in word:
                output.write(word)
            else:
             print("Trigger №",n)
             n+=1
    os.replace("output.txt", "words.txt")
    print("Completed. Check out words.txt in program directory")
    input()
    os.system("cls")
Скрипт вызывается следующим образом в cmd:
Код
C:\Users\Admin>cd ._python
C:\Users\Admin\._python>cd words
C:\Users\Admin\._python\words>test.py x
Задача заключалась в том, чтобы скрипт исключил из текстового файла слова, содержащие заданную букву, однако, вне зависимости от введённых аргументов исход был следующим:
Код
Error: Invalid number of arguments: 1
Тогда я решил проверить тестовый скрипт, который был приведён в материале на тему командной строки, ссылку на который дал выше.
Python
1
2
3
4
5
6
7
8
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
import sys
 
if __name__ == "__main__":
    for param in sys.argv:
        print (param)
На вход скрипт получал следующее:
Код
C:\Users\Admin\._python\words>params.py param1 param2 param3
И исходя из моего понимания должен был вывести список введённых аргументов:
Код
params.py
param1
param2
param3
Но отвечал он так:
Код
C:\Users\Admin\._python\words\test.py
Вопрос, в принципе, прежний: почему так происходит и как это починить.

Благодарю неравнодушных форумчан.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2017, 14:46
Ответы с готовыми решениями:

Задавать режим выполнения скрипта через аргументы командной строки
Всем привет, подскажите пожалуйста, как можно реализовать режим выполнения...

Скрипт html в pdf не принимает длинные имена файлов
Выдает ошибку WinError206, если длина файла большая, помогите исправить. ...

Передать параметры в скрипт через ключи командной строкии
Привет всем! Обясните мне, непутевому, как передать входящие параметры в...

Параметры командной строки
Как можно реализовать в Python если ( script -r ) чтобы он выполнил одно и если...

Чтение из командной строки
Всем привет. Составляю такую программу import sys C = float(sys.argv) F =...

1
Garry Galler
1423 / 1149 / 422
Регистрация: 28.10.2013
Сообщений: 2,915
01.07.2017, 15:55 2
Запускайте скрипт непосредственно через python или py -3.ваша_версия.
Код
python C:\Users\Admin\._python\words\test.py  1 2 3 4 5
py -3.5 C:\Users\Admin\._python\words\test.py  1 2 3 4 5
Иначе ваши аргументы в скрипт не прилетают. Почему - вопрос не касающийся python'а.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2017, 15:55

Разбор аргументов командной строки
#!/usr/bin/python3.4 # -*- coding: UTF-8 -*- import sys import...

Запустить файл Python из командной строки
Только начала изучать Python и уже где-то ошиблась. Изучаю язык по книге...

Запуск локального сервера из командной строки
Всем привет! Помогите разобраться почему не получается запустить локальный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru