python - 有没有办法检查 .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 文件不在同一文件夹中时。
实际结果是函数继续执行,因为文件路径设置不正确。
解决方案
__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)
推荐阅读
- google-sheets - 列出列中重复行的最大日期 - Google Query
- python - 连体网络的损失不减少,准确率低
- azure - 自动连接到最近的 Azure Cosmos DB 位置?
- ios - Mono / Xamarin.iOS SIGTRAP gc.safepoint_poll 崩溃
- list - Scala中基于元素值的拆分列表
- pandas - 在 x 轴上更改 pandas visulaisation 的日期格式
- python - 使用python搜索文件中的数据,但按名称搜索数据
- r - 如果 B 是作为 A 子集的数据帧,我如何从 A 数据帧(在 R 中)中删除整个 B 数据帧
- python - 训练后如何使用 LSTM 模型?
- swift - 致命错误:尝试访问 collectionView 函数中的模型数组内容时,索引超出范围