python – TypeError:强制转换为Unicode:需要字符串或缓冲区,
发布时间:2020-12-20 11:41:08 所属栏目:Python 来源:网络整理
导读:我是编程特别是 Python的新手.我正试图用 this tutorial 学习它. 我现在正在练习19,其中一个学习练习是创建我自己的设计功能,并运行十次不同的时间.我认为到目前为止我做得很好,直到第10次跑.这是我第一次尝试创建并写入文件,然后再次打开它以取出数字并将其
我是编程特别是
Python的新手.我正试图用
this tutorial 学习它.
我现在正在练习19,其中一个学习练习是创建我自己的设计功能,并运行十次不同的时间.我认为到目前为止我做得很好,直到第10次跑.这是我第一次尝试创建并写入文件,然后再次打开它以取出数字并将其放入bread_and_butter变量中. 错误如下所示: Traceback (most recent call last): File "ex19b.py",line 95,in <module> j2 = open(j1) TypeError: coercing to Unicode: need string or buffer,file found from sys import argv def bread_and_butter(bread,butter): print "I have %d bread(s) and %d grams buttern" % (bread,butter) print "1. I can give it the numbers directly:" bread_and_butter(10,15) print "2. Or I could use variables from my script:" amount_of_bread = 10 amount_of_butter = 15 bread_and_butter(amount_of_bread,amount_of_butter) print "3. We can even do math inside it:" bread_and_butter(10 + 5,7 + 9) print "4. And we can combine both,math and variables:" bread_and_butter(amount_of_bread + 7,amount_of_butter + 9) print "5. We can let the user decide how much we have:" x = raw_input("How much bread do we have?") i = raw_input("And how much butter do we have?") y = int(x) z = int(i) bread_and_butter(y,z) print "6. Also we can take arguments for that:" script,how_much_bread,how_much_butter = argv q = int(how_much_bread) w = int(how_much_butter) bread_and_butter(q,w) print "7. Another mathematic way:n" x1 = raw_input("How much breads do we have left?") x2 = raw_input("How much breads do we need?") y1 = raw_input("How much grams butter was left again?") y2 = raw_input("How much grams butter do we still need?") a1 = int(x1) a2 = int(x2) b1 = int(y1) b2 = int(y2) c,d = a2 - a1,b2 - b1 print "We still need %d bread(s) and %d gram butter butn" % (c,d) bread_and_butter(a1,b1) print "8. Another way:n" bread = 10 butter = 300 y = bread - 8 z = butter - 1000 bread_and_butter(y,z) print "9. Second last way:n" script,bread,butters = argv f = int(bread) g = int(butters) l = f - 30 k = g - 500 bread_and_butter(l,k) print "10. The last way:n" j = raw_input("I'll create a file with numbers in it,what's it's name?") j1 = open(j,'w') number1 = raw_input("How many breads do we have?") number2 = raw_input("And how much butter do we have?") print "I'm going to write these to the file..." j1.write("%sn%sn" % (number1,number2)) j1.close() print "The filename is: %s." % j1.name j2 = open(j1) j3 = open(j1) j4 = j2.read() j5 = j3.read() j6 = int(j4) j7 = int(j5) bread_and_butter(j6,j7) 当有人能在这里帮助我时,我会很高兴.我想这不会是我不会理解的最后一件事但是现在让我感到困惑.当你看到它时,我确定你的“专业人士”已经解决了这个问题. 无论如何,提前谢谢, Wumpel 解决方法
您收到此错误是因为open正在查找文件名,并且您将文件对象本身传递给它j1.例如,如果您打开j,则不会再出现错误.
编辑: j1 = open(j,'w') for i,line in enumerate(j1): if i == 12: # this is the 13th line elif i == 312: # this is the 313th line elif i > 1000: break j1.close() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |