Python 如何从for循环生成一个全局变量
所以我有一个for循环,当在for循环中打印时,它会精确地打印我想要的内容,因为它会打印txt文件的每一行。但是,我想将所有这些打印行转换成一个变量,以便在代码中稍后使用 这是一个调度程序,我想能够从一个txt文件读取,以便用户可以通过GUI编辑它。然而,由于它是一个循环,定义它,然后在循环外打印显然只打印最后一行,我无法找到绕过它的方法Python 如何从for循环生成一个全局变量,python,Python,所以我有一个for循环,当在for循环中打印时,它会精确地打印我想要的内容,因为它会打印txt文件的每一行。但是,我想将所有这些打印行转换成一个变量,以便在代码中稍后使用 这是一个调度程序,我想能够从一个txt文件读取,以便用户可以通过GUI编辑它。然而,由于它是一个循环,定义它,然后在循环外打印显然只打印最后一行,我无法找到绕过它的方法 with open('schedule.txt') as f: for line in f: a,b,c = line.split('
with open('schedule.txt') as f:
for line in f:
a,b,c = line.split(',')
print('schedule.every().{}.at("{}").do(job, "{}")'.format(a, b, c))
输出是我想要的,但是我不能根据需要将整个东西定义为一个变量。您在寻找类似的东西吗
code = []
with open('schedule.txt') as f:
for line in f:
a,b,c = line.split(',')
code.append('schedule.every().{}.at("{}").do(job, "{}")'.format(a, b, c))
现在代码是一个字符串列表。然后,您可以将它们连接在一个字符串中,如下所示:
python_code = ";".join(code)
另一种更容易阅读的方法是定义code=并在循环中附加到它:
code += 'schedule.every().{}.at("{}").do(job, "{}");'.format(a, b, c)
这样,您就不需要加入任何内容,但输出将有一个不必要的分号作为最后一个字符,它仍然有效,但有点难看。在打开文件之前启动一个空列表。在读取变量a、b和c时,将它们附加到列表中。这将为您提供一个包含所需内容的列表
variables = []
with open('schedule.txt') as f:
for line in f:
a,b,c = line.split(',')
variables.append([a, b, c])
print(variables)
创建一个列表来保存您正在打印的所有字符串,您可以在循环的每次迭代中附加到这些字符串,或者您可以拥有一个字符串变量,该变量+=您正在打印的字符串。请参阅以下关于比较字符串串联性能的答案: