PYTHON получает файлы из командной строки
Как вы получаете имя файла из командной строки при запуске кода Python? Например, если ваш код открывает файл и читает строку, но файл меняется всякий раз, когда вы запускаете его, как вы говорите:
python code.py input.txt
поэтому код анализирует "input.txt"? Что вам нужно сделать в реальном коде Python? Я знаю, это довольно неопределенный вопрос, но я действительно не знаю, как объяснить это лучше.
Ответы
Ответ 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')