Tho*_*eia 4 python compiler-errors
所以我正在学习Python.我正在使用数组和open()做一个简单的事情,有时候这段代码可以工作,有时却不行!请帮忙!
print('Load? (Y/N)')
load = raw_input()
if load == "y":
fin = open("myArr.bat", "r")
myArr = fin.readline()
if load == "n":
myArr = [0, 0, 0,
0, 0, 0,
0, 0, 0]
if load != "y" and load != "n":
print 'WUT?'
exit()
print (myArr[0]) , '|' , (myArr[1]) , '|' , (myArr [2])
print '----------'
print (myArr[3]) , '|' , (myArr[4]) , '|' , (myArr [5])
print '----------'
print (myArr[6]) , '|' , (myArr[7]) , '|' , (myArr [8])
print '_______________________________________________'
print 'What shall I change?'
print 'Number in array: '
foo = raw_input()
doo = int(float(foo))
print 'Number to change to: '
bar = raw_input()
dar = int(float(bar))
myArr[doo] = dar
print '_______________________________________________'
print (myArr[0]) , '|' , (myArr[1]) , '|' , (myArr [2])
print '----------'
print (myArr[3]) , '|' , (myArr[4]) , '|' , (myArr [5])
print '----------'
print (myArr[6]) , '|' , (myArr[7]) , '|' , (myArr [8])
fout = open("myArr.bat", "w")
fout.write(myArr)
fout.close()
Run Code Online (Sandbox Code Playgroud)
它给了我这个:
Traceback (most recent call last):
File "Screen.py", line 35, in <module>
fout.write(myArr)
TypeError: expected a character buffer object
Run Code Online (Sandbox Code Playgroud)
请帮忙!
我猜测你在测试代码和输入时会出现这个错误'n',但是当你输入时'y',它可以正常工作.这是因为这些方面:
if load == "n":
myArr = [0, 0, 0,
0, 0, 0,
0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
这样做myArr了list.一个不是简单地将列表写入文件.您必须先将其转换为字符串(只能将字符串写入文件).
因此,根据您希望如何将此列表存储在文件中,您可以执行以下操作:
fout = open("myArr.bat", "w")
fout.write(' '.join(map(str, myArr)))
fout.close()
Run Code Online (Sandbox Code Playgroud)
这基本上将以下行写入myArr.bat(假设myArr = [0, 0, 0, 0, 0, 0, 0, 0, 0]):
0 0 0 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
35824 次 |
| 最近记录: |