我正在遍历excel文档并尝试为excel中的每一行保存一个不同的文本文件。我想使用相同的命名格式
我试图做一个f字符串,这给了我一个语法错误或保存文件,如下所示:
endfile1 = (r"C:\Users\jrwaller\Documents\Automated Eve\Raw Data for {projectNum}.eve")
用于命名文件的for循环的示例是:
for i in range (10, finalrow, 1):
projectNum = sheet.cell(i,1).value #assigns project number
print(projectNum) #test
#sets up file string names for later
endfile1 = (r"C:\Users\jrwaller\Documents\Automated Eve\ITP19_Y02_F1_2018-10-03 {projectNum}.eve")
以便以后可以(使用先前定义的newBaseCase和longstr1):
with open(longStr1) as old_file:
with open(endfile1, "w") as new_file:
for line in old_file:
if "BASE CASE" in line:
line = newBaseCase + line
new_file.write(line)
我希望这样,如果excel有两行项目,它将节省一个
Proj1.txt
的原始数据和Proj2.txt
的原始数据(其中“ ProjX”取自excel),但按照目前的设置,当前会保存一个名为{projectNum}
的原始数据文件
答案 0 :(得分:0)
您需要调用.format()
来用变量替换{projectNum}
。
endfile1 = r"C:\Users\jrwaller\Documents\Automated Eve\ITP19_Y02_F1_2018-10-03 {projectNum}.eve".format(projectNum=ProjectNum)
或者您可以使用f字符串,该字符串会自动插入变量。
endfile1 = fr"C:\Users\jrwaller\Documents\Automated Eve\ITP19_Y02_F1_2018-10-03 {projectNum}.eve"
答案 1 :(得分:0)
f字符串以.crt
开头;您只使用了以f
因此,对于r
,请执行以下操作:
endfile1