Python写文件时出现TypeError错误

3
当我运行以下代码时:
tickers = re.findall(r'Process Name: (\w+)', s)

file = open("C:\Documents and Settings\jppavan\My Documents\My Dropbox\Python Scripts\Processes\GoodProcesses.txt","w")
file.write(tickers)
file.close()

它返回了常见的错误:

TypeError:期望一个字符缓冲区对象

有什么想法吗?
1个回答

17

如其名称,findall()返回的是Python 列表而非字符串/缓冲区。

你无法将列表写入文件句柄 - 这该怎么工作?

你期望是什么?

file.write(str(tickers))

用于列表的字符串表示形式?

或者

file.write(', '.join(tickers))

如何将列表项以逗号分隔进行连接?

无论如何,write(..) 都需要一个字符串或缓冲区。

除此之外:不要把你的文件句柄命名为 'file'。

file() 是一个内置方法。


啊,这很有道理。我可以使用字符串表示或逗号分隔。这样就消除了错误,但是没有任何输出到文件中,尽管应该有输出,所以我应该能够从这里找出问题。 - Jared
另外,文件命名为file,我也考虑过不这样做,但是... - Jared
显然你的正则表达式不匹配。使用pdb进行调试。 - user2665694

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接