Моя цель - создать скрипт на python, который будет форматировать / модифицировать XML-файл.
Путь к файлу и имени файла указываются в качестве аргументов в командной строке.
Вот мой код ниже:
import lxml.etree as etree
from argparse import ArgumentParser
import sys
import os
def main():
parser = ArgumentParser()
parser.add_argument('-p', '--path', help="path to file's directory", required=True)
parser.add_argument('-f', '--file', help="file name", required=True)
args = parser.parse_args()
root_dir = sys.argv[1]
file_name = sys.argv[2]
path = sys.argv[1] + sys.argv[2]
for dirpath, dirnames, files in os.walk(root_dir):
for file in files:
if file == file_name:
print(os.path.join(dirpath, file_name))
with open(path, 'r', encoding="utf8") as myfile:
try:
print("DONE")
parser = etree.XMLParser(remove_blank_text = True)
tree = etree.parse(path, parser)
tree.write(path, pretty_print = True)
except IOError:
print("IO Exception Occured")
if __name__ == "__main__":
main()
Когда я запускаю его из cmd - у меня 0 ошибок, но файл не отформатирован, хотя я даю имя файла, которого не существует, - все еще нет ошибок. Поэтому, когда я запускаю его из cmd - ничего не происходит.
Когда я пытаюсь отладить его в Visual Studio, возникает ошибка, что необходимо указать 2 аргумента.
Кто-нибудь может сказать мне, как исправить мой код, я понятия не имею, где у меня неправильный код?