Подтвердить что ты не робот

PYTHON получает файлы из командной строки

Как вы получаете имя файла из командной строки при запуске кода Python? Например, если ваш код открывает файл и читает строку, но файл меняется всякий раз, когда вы запускаете его, как вы говорите:

python code.py input.txt

поэтому код анализирует "input.txt"? Что вам нужно сделать в реальном коде Python? Я знаю, это довольно неопределенный вопрос, но я действительно не знаю, как объяснить это лучше.

4b9b3361

Ответ 1

fileinput вариантом является модуль fileinput, который fileinput любое или все имена файлов из командной строки и передает содержимое указанных файлов вашему сценарию, как если бы они были одним большим файлом.

import fileinput
for line in fileinput.input():
    process(line)

Больше информации здесь.

Ответ 2

import sys
filename = sys.argv[-1]

Это приведет к последнему аргументу в командной строке. Если аргументы не переданы, это будет имя script, так как sys.argv[0] - это имя запущенной программы.

Ответ 3

Использование argparse довольно интуитивно понятное:

import argparse
parser = argparse.ArgumentParser()                                               

parser.add_argument("--file", "-f", type=str, required=True)
args = parser.parse_args()

Теперь имя файла находится в:

args.file

Вам просто нужно запустить программу несколько иначе:

python code.py -f input.txt

Ответ 4

Параметры командной строки доступны в виде списка через sys модуль argv. Первым элементом в списке является имя программы (sys.argv[0]). Остальные элементы - это параметры командной строки.

См. также getopt, optparse и argparse для более сложного разбора командной строки.

Ответ 5

В дополнение к тому, что упоминается в уже существующих ответах, существует другая альтернатива, полагающаяся на использование Набор для создания интерфейса командной строки (щелкните). Его последняя стабильная версия к тому времени, когда я опубликовала этот ответ, версия 6. Официальная документация содержит примеры того, как обращаться с файлами и передавать их как аргументы командной строки.

Ответ 6

Просто используйте базовую команду raw_input

объявить имя входного файла как строку

inFile = ""
inFile = raw_input("Enter the input File Name: ")

Теперь вы можете открыть файл, используя open(inFile,'w')