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

标签 python file append

我需要打开一个文件(例如 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 = []

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

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

如您所见,即使我什至没有触及 b,它仍然会 append 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)

关于python - 打开两个不同的代码行并读取同一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19281101/

相关文章:

jquery - 尝试在 easySlider 轮播中显示所有图像的替代文本

python - 将列表作为带有索引的新行 append 到 Pandas DataFrame

python - 使用梯形规则在Python中绘制摆运动

python - 如何从具有条件的另一列中提取值?

python - 有没有办法镜像Python函数?

json - 尝试通过提取读取json文件时出现错误

perl - 确定目录的用户/组所有权

python - 从哪里获取适用于 Visual Studio 的 Python DLL?

通过相对路径加载包外的 Java 文件以作为图像加载 (JavaFX)

java - 在 Java 或 C 中 append 两个十六进制 long 值