我有两个Python模块:
one.py
;和two.py
我想更改X
中的two.py
全局变量。脚本two.py
正在运行。我运行one.py
one.py
#!/usr/bin/env python
import two
def main():
two.function("20")
if __name__=="__main__":
main()
two.py
#!/usr/bin/env python
X="10"
def main():
while True:
function()
time.sleep(0.25)
def function(input="00"):
if(input!="00"):
global X
X=input
print "change"
print X
if __name__=="__main__":
main()
控制台:
sudo python two.py
10
10
10
10
after I run one.py but no change in two.py
答案 0 :(得分:1)
在我运行one.py但在two.py
中没有变化之后
您正在做什么动态更改变量。它不会重写文件。
事实上,你可能想做什么。
myfile.txt
5
reader.py
with open('myfile.txt', 'r') as fp:
nb = int(fp.read())
print(nb)
writer.py
with open('myfile.txt', 'w') as fp:
fp.write('6')
现在,如果您运行reader.py
,则会输出5
。然后,如果您运行writer.py
,则不会输出任何内容,只需将myfile.txt
的整个内容替换为6
即可。然后,重新运行reader.py
,它会输出6
,因为文件的内容已更改。它的工作原理是,与您运行的程序不同,文件的内容不依赖于进程,而是“静态”。