我如何知道 os.makedirs() 创建的文件的路径并将其存储在变量中供以后使用?
how can i know the path of a file created by os.makedirs() and store it in a variable for later use?
我想构建一个函数,通过 docx 库将名称从 csv 转换为 word 文档,我想用 os.makedirs() 创建一个空文件,文件已创建但我无法获取它稍后加入路径与 word 文档的路径以将文档保存在该文件中
这是我的代码:
import docx
import pandas as pd
from datetime import datetime
import os
from docx2pdf import convert
from pathlib import Path
def auto_fill(x,y):
database=pd.read_csv(x)
df=pd.DataFrame(database)
df=df.dropna(axis=0)
targeted_doc=docx.Document(y)
date = datetime.date(datetime.now())
strdate = date.strftime("%m-%d-%Y")
path = strdate
newfile = os.makedirs(path)
newfile_path = path(newfile)
for i in range(len(df.Name)+1):
for n in range (len(targeted_doc.paragraphs)+1):
if targeted_doc.paragraphs[n].text=="Name of trainee":
name=targeted_doc.paragraphs[n].runs[0].text=df.at[i,'Name']
for m in range(len(targeted_doc.paragraphs) + 1):
if targeted_doc.paragraphs[m].text == "tissue date":
date = targeted_doc.paragraphs[n].runs[0].text = strdate
for l in range(len(targeted_doc.paragraphs) + 1):
if targeted_doc.paragraphs[n].text == "tserial number":
sr_num = targeted_doc.paragraphs[l].runs[0].text = df.at[i, 'serial number']
name_of_file = (f"{df.at[i, 'Name']}.docx")
outputdoc=targeted_doc.save(name_of_file)
path_of_document=path(outputdoc)
completesave = os.path.join(path_of_document, name_of_file)
convert(path_of_document,newfile_path+f"{name_of_file}.pdf")
auto_fill("database.csv","01.docx")
如果我理解您要完成的任务,那么只需使用您之前创建的 path
变量即可。由于您使用了 os.makedirs(path)
,那么指向它的路径就是 path
对象。
如果不更改位置,可以使用相同的path
。如果更改位置,您可以使用 os.getcwd()
从脚本中获取路径,并使用 os.path.join()
[=15= 将其与 path
连接]
您可以将 os.path.join(os.getcwd(), path)
的结果存储到一个变量中,稍后使用。您可以在创建文件之前编写该绝对路径,这样您将拥有完整的路径
我想构建一个函数,通过 docx 库将名称从 csv 转换为 word 文档,我想用 os.makedirs() 创建一个空文件,文件已创建但我无法获取它稍后加入路径与 word 文档的路径以将文档保存在该文件中 这是我的代码:
import docx
import pandas as pd
from datetime import datetime
import os
from docx2pdf import convert
from pathlib import Path
def auto_fill(x,y):
database=pd.read_csv(x)
df=pd.DataFrame(database)
df=df.dropna(axis=0)
targeted_doc=docx.Document(y)
date = datetime.date(datetime.now())
strdate = date.strftime("%m-%d-%Y")
path = strdate
newfile = os.makedirs(path)
newfile_path = path(newfile)
for i in range(len(df.Name)+1):
for n in range (len(targeted_doc.paragraphs)+1):
if targeted_doc.paragraphs[n].text=="Name of trainee":
name=targeted_doc.paragraphs[n].runs[0].text=df.at[i,'Name']
for m in range(len(targeted_doc.paragraphs) + 1):
if targeted_doc.paragraphs[m].text == "tissue date":
date = targeted_doc.paragraphs[n].runs[0].text = strdate
for l in range(len(targeted_doc.paragraphs) + 1):
if targeted_doc.paragraphs[n].text == "tserial number":
sr_num = targeted_doc.paragraphs[l].runs[0].text = df.at[i, 'serial number']
name_of_file = (f"{df.at[i, 'Name']}.docx")
outputdoc=targeted_doc.save(name_of_file)
path_of_document=path(outputdoc)
completesave = os.path.join(path_of_document, name_of_file)
convert(path_of_document,newfile_path+f"{name_of_file}.pdf")
auto_fill("database.csv","01.docx")
如果我理解您要完成的任务,那么只需使用您之前创建的 path
变量即可。由于您使用了 os.makedirs(path)
,那么指向它的路径就是 path
对象。
如果不更改位置,可以使用相同的path
。如果更改位置,您可以使用 os.getcwd()
从脚本中获取路径,并使用 os.path.join()
[=15= 将其与 path
连接]
您可以将 os.path.join(os.getcwd(), path)
的结果存储到一个变量中,稍后使用。您可以在创建文件之前编写该绝对路径,这样您将拥有完整的路径