【发布时间】:2015-02-02 17:54:36
【问题描述】:
我正在尝试编写一个脚本,该脚本将读取目录中的所有文件并将它们转储到单个文件中。我所拥有的是:
from glob import glob
directory = glob('/Users/jmanley/Desktop/Table/*')
with outfile as open('/Users/jmanley/Desktop/Table.sql', 'wb'):
for file in directory:
with readfile as open(file, 'rb'):
outfile.write(readfile.read())
我得到"can't assign to function call" 作为错误消息,IDLE 将with 关键字标记为错误位置。
如果我重写脚本以使用 open() 和 close() 方法而不是使用 with 关键字,它可以正常运行:
from glob import glob
directory = glob('/Users/jmanley/Desktop/Table/*')
outfile = open('/Users/jmanley/Desktop/Table.sql', 'wb')
for file in directory:
readfile = open(file, 'rb')
outfile.write(readfile.read())
readfile.close()
outfile.close()
为什么我会收到 "can't assign to function call" 错误?我见过这种情况的唯一一次是如果分配被颠倒:a + b = variable。我只是错过了一些非常明显的东西吗?
【问题讨论】:
-
应该是
with open('/Users/jmanley/Desktop/Table.sql', 'wb') as outfile:...
标签: python python-3.x with-statement