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

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

01.07.2017, 14:46. Просмотров 230. Ответов 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
Тогда я решил проверить тестовый скрипт, который был приведён в материале на тему командной строки, ссылку на который дал выше.
http://www.cyberforum.ru/python/thread1807438.html
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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Скрипт не принимает аргументы командной строки (Python):

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

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

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

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

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

1
Garry Galler
1262 / 1005 / 372
Регистрация: 28.10.2013
Сообщений: 2,543
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
Привет! Вот еще темы с решениями:

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

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

Модуль Python не запускается из командной строки
Начал читать Лутца. Споткнулся на первом же задании. Создал файл (вложение 0)...

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


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

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

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