打开两个不同的代码行并读取同一个文件



我需要打开一个文件(示例操作.txt(并将其整个传递给列表(示例操作 [ ](

对许多其他文件再次重复相同的操作

actions = greetings = []
with open (os.getcwd() + "/files/" + "actions.txt") as temp  :
    for a in temp :
        actions.append(a)        

with open (os.getcwd() + "/files/" + "greetings.txt") as temp  :        
    for a in temp :
        greetings.append(a)    

问题是在这两种情况下都是打开并读取第一个文件,也许有一个明显的错误,但我没有注意到

提前非常感谢你。

我在Linux Mint 13上使用Python 2.7.3(很棒(和优秀的IDENetbeans

附注:

我尝试将目录更改为带有"os.chdir"的"文件">

同时用"temp.close(("关闭对象"temp">

我输入了第二行代码" temp2"而不是"temp">

我不知道还能做什么。

你的问题出在以下行上:

actions = greetings = []

此行使actionsgreetings都引用同一列表。 请参阅下面的演示:

>>> a = b = []
>>> a.append(1)
>>> a
[1]
>>> b
[1]
>>>

如您所见,即使我什至没有碰过b,它仍然1附加到它,因为ab是同一个列表。

因此,要解决您的问题,请将一行代码设为两行:

actions = []
greetings = []

或执行此操作:

actions, greetings = [], []

实际上,正如@abarnert评论中所说,您想要的可以像这样简单:

with open(os.getcwd() + "/files/" + "actions.txt") as temp:
    actions = list(temp)
with open(os.getcwd() + "/files/" + "greetings.txt") as temp:        
    greetings = list(temp)

最新更新