cra*_*ice 9 python io syntax-error
我正在尝试编写一个小程序,用Python编写一个文件行(追加会更好),如下所示:
def getNewNum(nlist):
newNum = ''
for i in nlist:
newNum += i+' '
return newNum
def writeDoc(st):
openfile = open("numbers.txt", w)
openfile.write(st)
newLine = ["44", "299", "300"]
writeDoc(getNewNum(newLine))
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我得到错误:
openfile = open("numbers.txt", w)
NameError: global name 'w' is not defined
Run Code Online (Sandbox Code Playgroud)
如果我放下"w"参数,我会收到另一个错误:
line 9, in writeDoc
openfile.write(st)
IOError: File not open for writing
Run Code Online (Sandbox Code Playgroud)
我正在追随(我希望)这里有什么.
当我尝试追加新行时也会出现同样的情况.我该如何解决这个问题?
Lev*_*von 26
问题出在open()调用中writeDoc(),文件模式规范不正确.
openfile = open("numbers.txt", w)
^
Run Code Online (Sandbox Code Playgroud)
在w需要具有(一对单或双)周围的引号,即
openfile = open("numbers.txt", "w")
^
Run Code Online (Sandbox Code Playgroud)
引用文档重新文件模式:
第一个参数是包含文件名的字符串.第二个参数是另一个字符串,其中包含一些描述文件使用方式的字符.
回复:"如果我放下"w"参数,我得到另一个错误:..IOError:文件没有打开写"
这是因为如果没有指定文件模式,则默认值为'r'ead,这解释了有关文件未打开"写入"的消息,它已被打开以进行"读取".
有关读取/写入文件和有效模式规范的更多信息,请参阅此Python文档.