Есть ли способ проверить, существует ли файл .docx в той же папке, что и файл .py, независимо от пути к файлу? - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь создать функцию, которая проверяет, существует ли определенный файл docx, а затем создает файл, если он не существует. Как мне это сделать, чтобы программа проверяла файл, в котором находится .py файл.

#Creating The Finance Log Word Doc
#If the file does not exist create file
if os.path.exists("Finance Log.docx")==False:
    doc = docx.Document()
    run = doc.add_paragraph().add_run()
    # Apply Style
    Tstyle = doc.styles['Normal']
    font = Tstyle.font
    font.name = "Nunito Sans"
    font.size = Pt(48)
    Title = doc.add_paragraph()
    TRun = Title.add_run("Finance Log")
    TRun.bold = True
    doc.add_picture('Scouts_Logo_Stack_Black.png', width=Inches(4.0))
    doc.save("Finance Log.docx")

Ожидаемый результат заключается в том, что файл создается, только если отсутствует в той же папке, что и файл .py.

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

1 Ответ

0 голосов
/ 13 января 2019

Путь к текущему файлу py можно получить из переменной __file__.

С этого момента найдите каталог как os.path.dirname.

Затем присоедините это к имени файла, который вы ищете:

my_directory = os.path.dirname(__file__)
path_to_docx = os.path.join(my_directory, "Finance Log.docx")

Чтобы быть более безопасным, преобразуйте путь в абсолютный путь (, потому что иногда это не ):

my_directory = os.path.abspath(os.path.dirname(__file__))
path_to_docx = os.path.join(my_directory, "Finance Log.docx")

Тогда используйте это везде, например ::

os.path.exists(path_to_docx)

doc.save(path_to_docx)
...