首页 > 解决方案 > 有没有办法检查 .docx 文件是否存在于与 .py 文件相同的文件夹中,而与文件路径无关?

问题描述

我正在尝试创建一个函数来检查是否存在特定的 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 文件不在同一文件夹中时。

实际结果是函数继续执行,因为文件路径设置不正确。

标签: pythonpython-3.xfilepathdocx

解决方案


__file__您可以从变量中获取当前 py 文件的路径。

从那里,找到目录为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)

推荐阅读