使用python在文件中写入数据
我是编程新手。刚刚买了一本Python初学者用的书。在里面我得到了以下代码:使用python在文件中写入数据,python,python-3.x,Python,Python 3.x,我是编程新手。刚刚买了一本Python初学者用的书。在里面我得到了以下代码: name = input("name") email = input("whats ure email:) favoriteband = input("ure fav band") outputString = name + "|" email + "|" + favoriteband fileName = name + ".txt" file = open(fileName, "wb") file.write
name = input("name")
email = input("whats ure email:)
favoriteband = input("ure fav band")
outputString = name + "|" email + "|" + favoriteband
fileName = name + ".txt"
file = open(fileName, "wb")
file.write (outputString)
print (outputString , " saved in ", fileName)
file.close ()
根据这本书,这很好,但我有一个错误:
TypeError: a bytes-like object is required, not 'str'
我不知道如何修复它,这本书也没有解释这一点 让我们来看一下:
name = input("Your name: ")
email = input("Your email: ")
正如已经指出的那样,需要封闭报价
outputString = name + "|" + email + "|" + favoriteband
输出字符串
在电子邮件
最后,我们需要重写您的文件管理:
with open(fileName, "a") as file:
file.write (outputString)
print (outputString , " saved in ", fileName)
将其写入带有语句的,可以保证它将关闭。使用open(…,“a”)
以“append”模式打开文件,并允许您向同名文件写入多个字符串
最后,如果我能发表社论,到目前为止我还不是这本书的粉丝
编辑:这里是完整的代码和修复程序,希望能让你达到目的
name = input("name")
email = input("whats ure email:")
favoriteband = input("ure fav band")
outputString = name + "|" + email + "|" + favoriteband
fileName = name + ".txt"
with open(fileName, "a") as file:
file.write (outputString)
print (outputString , " saved in ", fileName)
您可以验证它是否与以下各项一起工作:
with open(fileName, "r") as file:
print(file.read())
我做了一些编辑(结束语和缺少的+
):
您得到这个错误是因为您是以二进制模式编写的,因此在wb
中出现了b
file=open(文件名,“wb”)
请尝试以下方法:
file=open(fileName,“w”)
添加结束引号>email=input(“What's ure email:”)
注意您粘贴的代码段中的色度编码。这非常清楚地表明你的报价不平衡。也就是说,检查file.write(outputString)
中的参数。低级文件API通常需要字节数组。要使用字符串,通常需要将文件流包装在更高的级别,如打印作者。抱歉,我错发了这行:email=input(“what's ure email”),可能重复OP希望从代码中理解的内容,因为他是初学者,为什么不先将他的输出字符串
转换为字节,然后再传递到文件.write()
。它不起作用。它是为初学者马克·拉索夫编写的。几乎没有任何代码可以工作。@pio我编辑了所有代码,希望能有所帮助。如果它不能与我的编辑一起工作,那么新的错误是什么?
name = input("name:")
email = input("whats ure email:")
favoriteband = input("ure fav band:")
outputString = name + " | " + email + " | " + favoriteband
fileName = name + ".txt"
file = open(fileName, "w") #opened in write mode but not in binary
file.write (outputString)
print (outputString , " saved in ", fileName)
file.close()