Python 附加到文件时出现问题

Python 附加到文件时出现问题,python,Python,我有下面的代码,我想在已经存在的文件中添加一些文本 with open("travellerList.txt", "a") as myfile: myfile.write(ReplyTraveller) myfile.close() 但我得到了: SyntaxError:无效语法 错误指向open命令中的n。有人能帮我理解我在上面的代码片段中犯了什么错误吗?你需要去掉myfile.close()。这很好: with open("travellerList.txt", "a") as m

我有下面的代码,我想在已经存在的文件中添加一些文本

with open("travellerList.txt", "a") as myfile:
    myfile.write(ReplyTraveller)
myfile.close()
但我得到了:

SyntaxError:无效语法


错误指向open命令中的n。有人能帮我理解我在上面的代码片段中犯了什么错误吗?

你需要去掉
myfile.close()
。这很好:

with open("travellerList.txt", "a") as myfile:
    myfile.write(ReplyTraveller)
with
块将在块的末尾自动关闭
myfile
。当你试图自己关闭它时,它实际上已经超出了范围

但是,您似乎使用的是一种早于2.6的python,其中添加了
with
语句。尝试升级python,或者如果无法升级,请在文件顶部使用
from\uuuuuu future\uuuuu import with\u语句


最后一件事,idk ReplyTraveler是什么,但您将其命名为类,它需要是字符串才能将其写入文件。

您需要摆脱
myfile.close()
。这很好:

with open("travellerList.txt", "a") as myfile:
    myfile.write(ReplyTraveller)
with
块将在块的末尾自动关闭
myfile
。当你试图自己关闭它时,它实际上已经超出了范围

但是,您似乎使用的是一种早于2.6的python,其中添加了
with
语句。尝试升级python,或者如果无法升级,请在文件顶部使用
from\uuuuuu future\uuuuu import with\u语句


最后一件事,idk ReplyTraveler是什么,但您将其命名为类,它需要是字符串才能将其写入文件。

只有在Python 2.6中才完全启用了
with
语法

您必须使用Python 2.5或更早版本:

Python 2.5.5 (r255:77872, Nov 28 2010, 19:00:19) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> with open("travellerList.txt", "a") as myfile:
<stdin>:1: Warning: 'with' will become a reserved keyword in Python 2.6
  File "<stdin>", line 1
    with open("travellerList.txt", "a") as myfile:
            ^
SyntaxError: invalid syntax
从:

版本2.5中的新功能

[……]

注意:在Python 2.5中,仅当启用了
with_语句
功能时,才允许使用
with
语句。在Python2.6中,它始终处于启用状态

将文件用作上下文管理器的要点是,它将自动关闭,因此您的
myfile.close()
调用是多余的

对于Python2.4或更早版本,恐怕您运气不好。您必须使用
try
-
finally
语句:

myfile = None
try:
    myfile = open("travellerList.txt", "a")
    # Work with `myfile`
finally:
    if myfile is not None:
        myfile.close()

只有在Python 2.6中才完全启用了带有语法的

您必须使用Python 2.5或更早版本:

Python 2.5.5 (r255:77872, Nov 28 2010, 19:00:19) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> with open("travellerList.txt", "a") as myfile:
<stdin>:1: Warning: 'with' will become a reserved keyword in Python 2.6
  File "<stdin>", line 1
    with open("travellerList.txt", "a") as myfile:
            ^
SyntaxError: invalid syntax
从:

版本2.5中的新功能

[……]

注意:在Python 2.5中,仅当启用了
with_语句
功能时,才允许使用
with
语句。在Python2.6中,它始终处于启用状态

将文件用作上下文管理器的要点是,它将自动关闭,因此您的
myfile.close()
调用是多余的

对于Python2.4或更早版本,恐怕您运气不好。您必须使用
try
-
finally
语句:

myfile = None
try:
    myfile = open("travellerList.txt", "a")
    # Work with `myfile`
finally:
    if myfile is not None:
        myfile.close()

你的回信里有什么?上面有一个string方法吗?代码本身就可以了。语法错误必须有其他原因。您能再显示一点您的程序吗?使用with语句时不需要关闭文件。它将自动关闭。您在ReplyTraveler中有什么内容?上面有一个string方法吗?代码本身就可以了。语法错误必须有其他原因。您能再显示一点您的程序吗?使用with语句时不需要关闭文件。它将自动关闭。如果使用Python2.5,那么从uuu future uuuu导入带有u语句的
可能会有一些用处……值得注意的是,2.5(或更糟的,更早的版本)是不再受支持的非常旧的Python版本。至少升级到2.7是值得的。我认为你是对的,不幸的是,我的组织被困在2.4版或其他版本。我们是古老的:(@Lattyware:许多长期支持Linux的发行版都使用较旧的版本,这让很多人陷入了困境。有没有办法不升级就找到解决方案?如果使用Python2.5,那么
from\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu语句
可能会有一些用处……值得注意的是2.5是不再受支持的非常旧的Python版本。它至少值得升级到2.7。我认为你是对的,不幸的是,我的组织一直停留在2.4版或其他版本。我们很古老:(@Lattyware:long-term support Linux发行版使用的都是较旧的版本,这让很多人无法使用。有没有办法不升级就找到解决方案?