2011-11-26 3 views
10

Я хочу, чтобы мой .py-файл принимал файл, который я предоставляю в качестве ввода в командной строке. Я использовал sys.argv [], а также fileinput, но я не получаю вывод.Как открыть файлы, заданные как аргументы командной строки в python?

+3

Вопрос не ясен. Неясно, какова ваша цель, какой результат вы ожидаете, что вы пробовали и как ее ослабили. Вместо того, чтобы сказать «я использовал' sys.argv [] ', а также' fileinput', было бы лучше показать ваш фактический код. Вместо того, чтобы говорить «я не получаю результат», лучше покажите вывод, который вы получите, и ожидаемый результат. –

+0

Задача: мне нужно проверить, является ли данный файл, содержащий строки, действительным адресом электронной почты. например: если есть четыре строки, мне нужно проверить, является ли каждая строка действительным адресом электронной почты. Однако я смог проверить это. Я получил требуемый вывод для файла, который я дал в качестве ввода. Я пытаюсь изменить его, чтобы принять любой файл, указанный в качестве аргумента командной строки, в конкретный .py-файл, чтобы он взял файл и проверить, имеются ли в этом файле действительные адреса электронной почты. – Ram

+0

Я делал эту программу на своей машине VM (ubuntu), поэтому я не мог скопировать ее в мою машину. – Ram

ответ

18

Если вы будете писать следующий сценарий:

#!/usr/bin/env python 

import sys 

with open(sys.argv[1], 'r') as my_file: 
    print(my_file.read()) 

и запустить его, он будет отображать содержимое файла, имя которого вы передаете в первом аргументе так:

./my_script.py test.txt 

(в приведенном выше примере этот файл будет test.txt).

+0

@ Tadeck - Эй, это сработало. : D Спасибо :) – Ram

+0

@Ram: Я рад, что это помогло. У вас есть дополнительные вопросы? – Tadeck

+0

Нет, я действительно представил результат и получил полный балл! спасибо :) Я сделал это с 'sys.arg', но я получил ошибки, поэтому не знал, какую ошибку я делал. После прочтения вашего сообщения я узнал, что 'sys.argv' принимает аргументы командной строки в виде массива, и именно поэтому мы используем индексирование. – Ram

Смежные вопросы