-1

我做了一些研究并找到了各种示例,但由于我的 Python 知识太基础,我不理解它们。

有没有一种方法可以只将列表导入另一个 python 窗口,因为我尝试的任何导入似乎都会导入列表,然后运行我不希望它执行的文件功能?我只希望其他 python 页面导入列表以显示它们或进一步修改它们?我没有这方面的代码,但我想它会是这样的

from 'filename' import task[],date[],description[]

上面的代码如下(请记住,我只想列出。我不想运行其他函数)

import sys
import os
task=[]
date=[]
description=[]
def addtask():
    """adds a task to the task list"""
    print("Please re-enter your filename with .txt on the end.")
    f=(raw_input("filename: "))
    file= open(f, "w+")
    add=(raw_input("Enter a task: "))
    if add=="helpme":
        os.startfile("C:\Users\Dale\Desktop\Python coursework\helpme.txt")
        add=(addtask())
    else:
        file.write(add)
        task.append(add)
    add1=(raw_input("Please enter a date for this task: "))
    if add1=="helpme":
        os.startfile("C:\Users\Dale\Desktop\Python coursework\helpme.txt")
        add=(addtask())
    else:
        file.write(add1)
        date.append(add1)
    add2=(raw_input("Please enter a description of the task: "))
    if add2=="helpme":
        os.startfile("C:\Users\Dale\Desktop\Python coursework\helpme.txt")
        add=(addtask())
    else:
        file.write(add2)
        description.append(add2)
    a=(raw_input("would you like to add another?: "))
    if a=="yes":
        print(addtask())
    elif a=="helpme":
        os.startfile("C:\Users\Dale\Desktop\Python coursework\helpme.txt")
        add=(addtask())
    else:
        import choices
b=(raw_input("Would you like to add a task?"))
if b=="yes":
    add=addtask()
elif b=="no":
    import choices
elif b=="helpme":
    os.startfile("C:\Users\Dale\Desktop\Python coursework\helpme.txt")
    add=(addtask())
else:
    import choices

希望结果正确......注意*这三个列表被称为task[],date[]description[]

4

3 回答 3

0

每当您使用 import 语句在 python 中导入任何模块(文件)时,都会执行文件中的所有内容(第一次由运行时导入,每隔一次只使用对第一次加载的引用)。

文件1.py:

mylist = [1,2,3,4,5]

文件2.py:

from file1 import mylist

通常,如果您在模块中只有函数和类定义,这并不重要。如果还有其他语句,它们也会被执行。

您不能做的是导入模块更改存储在模块中的一些列表,关闭解释器(即python),重新启动解释器并期望您的更改仍然存在-> 没有持久存储。如果您想保留一个列表,我建议您使用 Pickle 模块

于 2013-05-23T09:14:38.707 回答
0

你的意思是这样的吗?

$ cat task.py 
task=[1,2,3,4,5,6,7,8,9,0]

$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from task import task
>>> task
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
于 2013-05-23T09:11:09.377 回答
0

在没有 [ ] 的情况下尝试它,如果您已将这些列表定义为另一个文件中的变量,它应该可以工作。

于 2013-05-23T09:12:02.307 回答