python - TypeError: write() 参数必须是 str,而不是 int 问题
问题描述
我是使用 Python 编程的新手,我遇到了这个代码块的问题,它给了我一个类型错误?我正在尝试制作一个程序,用户可以将零件输入到一个warehouse.txt 文件中。
这是菜单:
def warehouse_menu():
print ("Options")
choice = int(input("Enter choice: "))
while choice != 5:
try:
if choice == 1:
whsparts_write()
elif choice == 3:
whsparts_print()
elif choice == 4:
whsparts_search()
elif choice == 5:
print ("Thanks for using A.P.I.M.S.")
第一个选择:
def whsparts_write():
print ("More options about where to write the .txt file")
warehouse_choice = int(input("Input here: "))
if warehouse_choice == 1:
tdw()
elif warehouse_choice == 2:
ddw()
elif warehouse_choice == 3:
sjw()
def warehouse_parts():
idnumber = 0
whsparts_masterlist = []
for a in range (1):
whsparts_list = []
assembly_section = input("Which assembly section: ")
whsparts_list.append (assembly_section)
carpart = input("Enter car part: ")
whsparts_list.append (carpart)
quantity = input("Enter quantity: ")
whsparts_list.append (quantity)
idnumber += 1
whsparts_list.append (idnumber)
whsparts_masterlist.append (whsparts_list)
return whsparts_masterlist
这是错误消息说它正在发生的地方:
def tdw():
fileHandler = open ('warehouse_parts (TDW).txt', 'w')
whsparts_masterlist = warehouse_parts()
for whsparts_list in whsparts_masterlist:
for b in whsparts_list:
fileHandler.write(b)
fileHandler.write('\t')
fileHandler.write('\n')
fileHandler.close()
和错误信息:
Traceback (most recent call last):
File "apims.py", line 83, in <module>
print (warehouse_menu())
File "apims.py", line 71, in warehouse_menu
whsparts_write()
File "apims.py", line 35, in whsparts_write
tdw()
File "apims.py", line 26, in tdw
fileHandler.write(b)
TypeError: write() argument must be str, not int
解决方案
您需要将 b 转换为字符串,然后再使用
str(b)
那么函数可以写成:
def tdw():
fileHandler = open ('warehouse_parts (TDW).txt', 'w')
whsparts_masterlist = warehouse_parts()
for whsparts_list in whsparts_masterlist:
for b in whsparts_list:
str(b)
fileHandler.write(b)
fileHandler.write('\t')
fileHandler.write('\n')
fileHandler.close()
编辑:为了在文件上写一些东西,输入应该总是先转换为字符串,然后才能写在文件上,否则你总是会收到这个错误。TypeError: write() argument must be str, not int
推荐阅读
- gridview - 如何仅禁用在 gridview asp.net Web 表单中具有价值的列单元格?
- java - 如何将故障处理程序“附加”到自定义身份验证提供程序?
- python - 安装任何东西时都会出错
- javascript - 从 localStorage 设置 Form.Check 默认值
- excel - 如何加入相关国家和城市的谷歌表格
- c# - 单击图像按钮时 Outlook VSTO 代码崩溃
- python - 在日期级别上减去日期时间对象
- python-3.x - 将 Django Rest Framework 的默认 url 更改为自定义
- python-3.x - 安装python任务要求时没有提供请求的任务2.8.0
- java - 如何从 xml 文件中读取 html 标签?