Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从for循环生成一个全局变量_Python - Fatal编程技术网

Python 如何从for循环生成一个全局变量

Python 如何从for循环生成一个全局变量,python,Python,所以我有一个for循环,当在for循环中打印时,它会精确地打印我想要的内容,因为它会打印txt文件的每一行。但是,我想将所有这些打印行转换成一个变量,以便在代码中稍后使用 这是一个调度程序,我想能够从一个txt文件读取,以便用户可以通过GUI编辑它。然而,由于它是一个循环,定义它,然后在循环外打印显然只打印最后一行,我无法找到绕过它的方法 with open('schedule.txt') as f: for line in f: a,b,c = line.split('

所以我有一个for循环,当在for循环中打印时,它会精确地打印我想要的内容,因为它会打印txt文件的每一行。但是,我想将所有这些打印行转换成一个变量,以便在代码中稍后使用

这是一个调度程序,我想能够从一个txt文件读取,以便用户可以通过GUI编辑它。然而,由于它是一个循环,定义它,然后在循环外打印显然只打印最后一行,我无法找到绕过它的方法

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)

创建一个列表来保存您正在打印的所有字符串,您可以在循环的每次迭代中附加到这些字符串,或者您可以拥有一个字符串变量,该变量+=您正在打印的字符串。请参阅以下关于比较字符串串联性能的答案: