我有3个python脚本文件,比如R.py
,N.py
,P.py
。我使用P
运行N
,通过调用R
函数从R's
获取数据。我想在P
中的if
语句中使用R.py
中的输入。我知道我可以更改R.py
以接收arg
,但我必须更改R.py
,因为if
不在我调用的函数中。我有办法从input
抓取P.py
并在R's
if
中使用它吗?
P.py
:
import N.py as n
lang = input("Enter the language set?: )
n.agent(name=name, learning=lr, is_remote=is_remote, is_bi=is_bi, batch=batch,
no_char_codes=no_char_codes, classes=classes, data_set=lang)
N.py
:
import R as r
r.retrieve(start, batch_counter, is_remote)
R.py
(不完全的):
# Here I want:
# if lang == 'E' use the below,
# else use something else.
# but the lang is coming from P.py:
char_codes = {0: 0, "a": 1, "b": 2, "c": 3, "d": 4, "e": 5, "f": 6, "g": 7,
"h": 8, "i": 9, "j": 10, "k": 11, "l": 12}
pos_values = {0: 0, "CC": 1, "CD": 2, "DT": 3, "EX": 4, "FW": 5, "IN": 6,
"JJ": 7, "JJR": 8, "JJS": 9, "LS": 10}
def retrieve(start, end, is_remote):
答案 0 :(得分:0)
通过结合python的读写功能,我可以看到答案。制作一个所有3 .py文件都可以查看的文本文档,例如,如果p.py提供" hello"的输入。 (如果要使用字符串文字作为输入)。您可以让p.py程序打开共享文本文档:
#(from p.py file)
input = "hello"
f = open("C:/Users/Directory/shared_file.txt", "w")
f.write(input)
f.close()
#(Then from r.py file)
f = open("C:/Users/Directory/shared_file.txt", "r")
input = f.readline() #or f.read() if its only 1 line with no '\n' or '\t' spacing
f.close()
input = str(input) #just to insure the input read is string for this example
if input == "Hi":
print("True")
elif input == "Hello":
print("second True")
else:
print("False")
此脚本应打印" False"。这就是我的程序相互通信的方式。除此之外,我认为你可以有一个参数,应该预期从一个.py返回另一个.py,但我不知道该怎么做!我希望这有助于您就如何解决问题提供不同的视角
答案 1 :(得分:0)
假设我有3个文件:
<强> mod1.py
强>:
condition = input()
<强> mod2.py
强>:
import mod1 as m1
<强> mod3.py
强>:
import mod2 as m2
如果我想在mod1.py
内使用mod3.py
中的对象,我只需将mod3.py
中的模块链接到:
import mod2 as m2
if m2.m1.condition:
print(m2.m1.condition)
答案 2 :(得分:0)
我不是说它漂亮或我推荐它,这几乎肯定是一个坏主意 - 但是,如果你绝对不得不......
<强> P.py 强>
import shelve
user_input = "Some user input"
with shelve.open('my_store') as holder:
holder['input'] = user_input
import N
<强> R.py 强>
import shelve
user_input = None
with shelve.open('my_store') as holder:
user_input = holder['input']
print(user_input)