有没有办法在循环过程中从同一个字符串保存多个文件?

2024-06-01 09:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在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和longtr1):

      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}的原始数据文件)


Tags: 文件infor原始数据格式lineexcel命名
2条回答

您需要调用.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"

f字符串前面有f;您只使用了一个原始字符串,它前面有r

因此,对于endfile1,请执行以下操作:

endfile1 = fr"C:\Users\jrwaller\Documents\Automated Eve\ITP19_Y02_F1_2018-10-03 {projectNum}.eve"

相关问题 更多 >