Я запускаю скрипт python следующим образом, вторая команда представляет собой разделенный запятой (",") разделяемый входной файл..am пытается разбить это средство на основе "," и продолжать добавлять вывод каждого файла filter_log для каждой строки в output.txt 1.) Получаем ошибку ниже при этом? 2.) как сохранить добавление к output.txt для каждой строки поиска, переданной во втором аргументе?NameError: name 'split' не определен
ОШИБКА: -
string = split(",",sys.argv[2])
NameError: name 'split' is not defined
ПРИМЕНЕНИЕ: -
python test.py input.log loc\modem,loc\data
КОД: -
import sys
import string
def filter_log(input_file, output_file, strs):
with open(input_file, "r") as input, open(output_file, "w") as output:
output.writelines(filter(lambda x: all([s in x for s in strs]), input.readlines()))
# here is just searched for "Warning", add other stuff
#filter_log("input.txt", "output.txt", ["Warning"])
print sys.argv[1]
print sys.argv[2]
for arg in sys.argv[2]:
string = split(",",sys.argv[2])
filter_log(sys.argv[1], "output.txt", ["Warning",string])
Также неверно использовать имена типа 'string' в качестве имен переменных. В этом случае вы ранее (без необходимости) импортировали модуль 'string'; Объявление 'string = sys.argv [2] .split (", ") означает, что у вас больше нет имени для ссылки на этот модуль. –
Где ошибка синтаксиса в его коде? – abarnert
Я остановлю приостановку - это ошибка, но не синтаксическая ошибка, поскольку в Python с использованием имени, которое не было определено, не является синтаксической ошибкой, это совершенно четко определенный фрагмент кода на этом языке. Это просто, что он задал исключение, которое не то, что хочет сделать этот вопрос. –