我有2个.py文件。我们将它们命名为foo.py和list.py
list.py没有任何代码,只有一个如下所示的列表:.
select
o.name as "Network Element Name",
(SELECT CASE WHEN nt.OBJECT_TYPE_ID=8090328832013865599 /* RNC */
THEN 'RNC'
WHEN nt.OBJECT_TYPE_ID=8090328832013865600 /* Node B */ THEN
'Node B'
WHEN nt.OBJECT_TYPE_ID=5100558796013838330 /* BTS */ THEN
'BTS'
WHEN nt.OBJECT_TYPE_ID=5100558796013838331 /* BSC */THEN
'BSC'
END
FROM nc_objects nt ,nc_references r
WHERE r.reference = nt.object_id)as "Network Element Type" from nc_objects o;
这就是list.py包含的所有内容......
现在,foo.py有一个代码,它基本上使用list.py中的列表来只允许某些输入(应该在列表中,否则:传递)
我添加了一个代码,可以从程序内部向列表添加元素,但我无法这样做。我试过使用append()函数。这对列表没有任何改变......
请通过提供正确的代码来帮助我编辑和写入list.py中列表的更改。
感谢。
答案 0 :(得分:0)
可能发生的情况是,您在程序运行时发送列表副本 - 然后附加到该列表 - 而不会影响list.py中的初始列表
我会考虑确保当你在list.py中实例化原始列表时,你没有这样做,这意味着每次调用代码块时,列表会在你调用时再次定义代码块或功能再次。
如果您正在尝试使用foo.py中的程序来显式编辑list.py文件,那么您可能只需使用python的pickle module,它将python对象的状态保存到文件中,然后您可以在以后正常加载它们,例如:
try:
with open(list, 'r') as file:
yourlist = pickle.load(file)
except(FileNotFoundError):
yourlist = ['someDefaultValue','anotherDefaultValue']
# Your code block, doing whatever you're doing
with open(list, 'w') as file:
pickle.dump(yourlist, file)
如果不了解您正在查看的内容或您正在尝试做的事情,那么很难给出更好的答案!