在寫一個復(fù)制文件內(nèi)容的demo時,shell報了一個錯誤
我的代碼是:
from sys import argv
from os.path import exists
script, from_file, to_file = argv
input = open(from_file)
inData = input.read()
print(f"The input file is {len(inData)} bytes long.")
print("Does the output file exist?", exists(to_file))
input()
output = open(to_file, 'w')
output.write(inData)
print("Done!")
input.close()
output.close()
搜了“TypeError: '_io.TextIOWrapper' object is not callable”報錯信息,Google了一番后硝训,看到有人說是上面調(diào)用過了。仔細看下代碼城看,果然上面有一個變量螟蒸,命名為“input”了。
我們把這個變量名改下:
#......部分無關(guān)代碼省略
input_file = open(from_file)
inData = input_file.read()
print(f"The input file is {len(inData)} bytes long.")
print("Does the output file exist?", exists(to_file))
input()
output = open(to_file, 'w')
output.write(inData)
print("Done!")
input_file.close()
output.close()
再次運行趾访,就沒有報錯了。input()這個方法本身是可以多次調(diào)用的董虱,但是給變量命名的時候要注意區(qū)分扼鞋,否則會報錯。