我有一个简单的方法,我必须做以下事情:
因此我做了以下内容:
import pandas as pd
import os
path = '/test'
os.chdir(path)
def writeScores(test):
with open('output.txt', 'w') as f:
var = "\n", test, "\n"
f.write(var)
然而,这给了我以下错误。我出错了什么想法?
TypeError: expected a character buffer object
答案 0 :(得分:2)
您正在尝试将tuple
写入您的文件。
虽然它适用于print
,因为print
知道如何打印多个参数,write
更严格。
只需正确格式化var
。
var = "\n{}\n".format(test)
答案 1 :(得分:2)
你有这个错误,因为你的第一个参数不是字符串,你应该传递一个字符串,你可以使用这个简单的脚本,你也可以改变" rw"到" w +" 或使用' a +'附加(不删除现有内容)
import os
writepath = 'some/path/to/file.txt'
mode = 'a' if os.path.exists(writepath) else 'w'
with open(writepath, mode) as f:
f.write('Freeman Was Here!\n')
答案 2 :(得分:0)
我假设您想要连接字符串,因此请使用+
代替,
import pandas as pd
import os
#path = '/test'
#os.chdir(path)
def writeScores(test):
with open('output.txt', 'w') as f:
var = "\n" + test + "\n"
f.write(var)
writeScores("asd")
答案 3 :(得分:0)
您在这里使用逗号分隔值(如
)创建了一个元组,而不是字符串var = "\n" + test + "\n"
所以你不能直接在文件上写那个元组。所以让我们把那个元组中的值放到一个字符串中:
with open('output.txt', 'w') as fp:
var = "\n", test, "\n"
fp.write(''.join('%s' % x for x in var))
并且更好的方式由@ Jean-FrançoisFabre回答