我想在python中显示文件1到文件2的列表的内容
我只是在该文件中提供一个示例代码,其中包含一个列表和一个变量。我只是想通过导入在file2中显示该列表的内容。代码给出错误
从文件1导入列表1,p
ImportError:无法导入名称列表1
我的代码是:
文件1:
if __name__ == '__main__':
list1 = ['a','b']
p = 123
print list1
print p
文件2:
from file1 import list1,p
if __name__ == '__main__':
list2 = ['p','q']
pb = 321
print list2
print pb
print list1
print p
答案 0 :(得分:1)
file1
中的您有if __name__ == '__main__':
,但是由于导入了file1
,因此在这种情况下不是这样。对于file
来说可能更合适:
list1 = ['a','b']
p = 123
if __name__ == '__main__':
print list1
print p
在您的情况下,似乎print
语句仅在直接调用file1
的情况下用于调试。但是必须将list1
和p
定义为导入,在这种情况下,可能不应该运行print
语句(我从您的代码中假设)。
答案 1 :(得分:0)
只需删除if语句:
file1.py:
list1 = ['a','b']
p = 123
file2.py:
from file1 import list1,p
print(list1) #output: ['a', 'b']
答案 2 :(得分:0)
I would make your list1 and p functions instead of just variables (see below):
file1.py
if __name__ == '__main__':
list1 = ['a','b']
p = 123
print(list1)
print(p)
def list1():
list1 = ['a','b']
print(list1)
def p():
p = 123
print(p)
And then in your second file call them like so:
file2.py
from file1 import *
if __name__ == '__main__':
list2 = ['p','q']
pb = 321
print(list2)
print(pb)
list1()
p()
You could also more simply just do this instead:
list1 = ['a','b']
p = 123
if __name__ == '__main__':
print(list1)
print(p)
Hope this helps!
答案 3 :(得分:0)
在file1中,您应该使用 if __name__ == '__main__'
,而不要使用 if __name__ == 'file1'
。这是因为当您在文件2中导入该文件时,文件1的__name__
是不是 __main__
,而是文件名,即 {{1 }} 。
因此,使用类似的方法会有所帮助:
文件1:
file1
file2:
if __name__ == 'file1':
list1 = ['a','b']
p = 123
print(list1)
print(p)
运行file2时的输出:
from file1 import list1,p
if __name__ == '__main__':
list2 = ['p','q']
pb = 321
print(list2)
print(pb)
print(list1)
print(p)
当我使用Python3而不是Python2时,可以从打印语句中删除括号。
但是在文件1中使用['a', 'b']
123
['p', 'q']
321
['a', 'b']
123
是多余的。