take the input from one python file and use it to another python file
假设我有一个zip文件,
现在,
我想从
因此,每当我运行
我试着这样做:
Test1.Py:
1 2 3 4 5 6 | import zipfile import os inputzip = input("Enter the Zip File:") file = zipfile.ZipFile(inputzip,"r") os.system("py test2.py") |
Test2.Py:
1 2 3 4 5 6 7 | import zipfile import os print ("The list of files in the zip :") for name in file.namelist(): print (name) |
但是每当我运行test1.py时,它总是显示,
1 | Enter the zip file: |
test2.py未执行。我用的是python 3.x
评论是对的,但听起来你还是想知道。@martineau已经强调了这个问题。发生的情况如下:
因为他们不了解彼此,所以以您想要的方式(即使用os.system())最简单的选择是以字符串的形式将信息从test1.py传递到test2.py。一种方法是:
Test1.Py:
1 2 3 4 5 6 7 | import zipfile import os inputzip = input("Enter the Zip File:") files = zipfile.ZipFile(inputzip,"r") name_list = ("".join([i for i in files.namelist()])) os.system("python3 test2.py {0}".format(name_list)) |
和
Test2.Py:
1 2 3 4 5 6 7 | import zipfile import sys print ("The list of files in the zip :") for name in sys.argv[1:]: print (name) |
输出:
1 2 3 4 5 | Enter the Zip File:test.zip The list of files in the zip : test txt1 txt2 |
最后,这是相当混乱的,正如@joelgoldstick已经指出的,您应该只将方法从test2.py导入test1.py。例如:
Test2.Py:
1 2 3 4 5 | def test2_method(zipfile): print ("The list of files in the zip :") for name in zipfile.namelist(): print (name) |
Test1.Py:
1 2 3 4 5 6 7 8 | import zipfile from test2 import test2_method inputzip = input("Enter the Zip File:") files = zipfile.ZipFile(inputzip,"r") test2_method(files) |
输出:
1 2 3 4 5 | Enter the Zip File:test.zip The list of files in the zip : test txt1 txt2 |
我现在想知道两个进程共享内存和一个进程能够将打开的zip文件对象的内存引用传递给另一个进程有多容易。不知道这是否可能。任何能开明的人都会很酷。