Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 01.07.2017
Сообщений: 2

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

01.07.2017, 14:46. Показов 4390. Ответов 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:
Code
1
2
3
C:\Users\Admin>cd ._python
C:\Users\Admin\._python>cd words
C:\Users\Admin\._python\words>test.py x
Задача заключалась в том, чтобы скрипт исключил из текстового файла слова, содержащие заданную букву, однако, вне зависимости от введённых аргументов исход был следующим:
Code
1
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)
На вход скрипт получал следующее:
Code
1
C:\Users\Admin\._python\words>params.py param1 param2 param3
И исходя из моего понимания должен был вывести список введённых аргументов:
Code
1
2
3
4
params.py
param1
param2
param3
Но отвечал он так:
Code
1
C:\Users\Admin\._python\words\test.py
Вопрос, в принципе, прежний: почему так происходит и как это починить.

Благодарю неравнодушных форумчан.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.07.2017, 14:46
Ответы с готовыми решениями:

Аргументы командной строки
Доброго времени суток ! Возник вопрос по теме "Модули". Проблемы возникли с использованием модулей стандартной библиотеки. Сама...

Аргументы командной строки Python
Приведите пожалуйста пример кода организации ввода с помощью аргументов командной строки и их непосредственного использования. Хотя бы на...

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

1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
01.07.2017, 15:55
Запускайте скрипт непосредственно через python или py -3.ваша_версия.
Code
1
2
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.07.2017, 15:55
Помогаю со студенческими работами здесь

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

Аргументы командной строки
Пытаюсь разобраться с этой штукой. У Дейтела это собственно только дополнение, а не отдельный пункт раздела так что всё написано сжато и с...

Аргументы командной строки
int main(int argc,int **argv) Понял только,что argc отвечает за количество аргументов,а argv-массив указателей на строки символов.Но...

Аргументы командной строки
Здравствуйте, напишите , пожалуйста, программу, которая будет работать в командной строке. --man-on-fire выводит строку Forgiveness is...

Аргументы командной строки c++
Доброго времени суток, уважаемые форумчане! Недавно начал с усиленным рвением грызть С++ и начали возникать вопросы. В общем-то пишу...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru