Привет всем. Я довольно новичок в программировании и Python, но у меня почти есть этот кусок кода.Мне просто нужно выяснить, как заставить аргументы, вызываемые в командной строке, работать с моим кодом.То, что я пробовал, не сработало. Вот эта часть:
tree.find ("./ PLANT / [COMMON = '% s'"% sys.argv [3]):
Вот весь мой код:
import os
import xml.etree.ElementTree as ET
import sys
# changes to the correct directory of each different environment
os.chdir(os.path.expanduser('~/Desktop'))
file = "plant_catalog.xml"
tree = ET.parse(file)
# Finds section by plant name and adjusts the price according to argument
for plant in tree.find("./PLANT/[COMMON='%s'" % sys.argv[3]):
if plant.tag == "PRICE":
plant.text = float(plant.text) * sys.argv[4]
plant.text = str(plant.text)
print(plant.text)
tree.write("plant_catalog.xml")
Вот ошибки:
Traceback (последний вызов был последним): Файл "C: / Users/cader/PycharmProjects/ModifyML/ModifyML.py ", строка 14, для завода в tree.find (имя): файл" C: \ Users \ cader \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ xml \ etree\ ElementTree.py ", строка 653, находить и возвращать self._root.find (путь, пространства имен) в файле" C: \ Users \ cader \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ xml \ etree \ ElementPath.py", строка 307, в поиске return next (iterfind (элемент, путь, пространства имен), нет) Файл" C: \ Users \ cader \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ xml \ etree \ ElementPath.py ", строка 300, в iterfind result = select (context, result) TypeError: объект 'NoneType' не может быть вызван
Процесс завершен с кодом выхода 1
Мне очень жаль, еслиэто плохо отформатировано, я создал аккаунт только длязадайте этот вопрос.