将列表数据添加到.txt文件,并在提示时重新打开这些列表

时间:2013-05-23 09:02:08

标签: python python-2.7

我做了一些研究,发现了各种各样的例子,但由于我的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[]

3 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

file1.py:

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

file2.py:

from file1 import mylist

通常,如果模块中只有函数和类定义,则无关紧要。如果还有其他陈述,他们也会被执行。

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