我需要打开一个文件(例如 actions.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 和出色的 IDE Netbeans
附言:
我试图用“os.chdir”更改目录“files”
也用“temp.close()”关闭对象“temp”
我在第二行代码中输入了“temp2”而不是“temp”
我不知道还能做什么。
最佳答案
你的问题出在这一行:
actions = greetings = []
此行使 actions
和 greetings
都引用相同列表。请参阅下面的演示:
>>> a = b = []
>>> a.append(1)
>>> a
[1]
>>> b
[1]
>>>
如您所见,即使我什至没有触及 b
,它仍然会 append 1
,因为 a
和 b
是同一个列表。
因此,要解决您的问题,请将一行代码变为两行:
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)
关于python - 打开两个不同的代码行并读取同一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19281101/