Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python在文件中写入数据_Python_Python 3.x - Fatal编程技术网

使用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

我是编程新手。刚刚买了一本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 (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()