You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

bash传递变量到Python脚本触发TypeError运算报错问题求助

报错根因
  • 通过os.environ读取的所有环境变量值默认都是字符串类型,你单独运行Python脚本时应该是直接给pdiv赋值了整数,所以不会触发报错;但从Bash调用时,pdiv实际是字符串格式的数字,直接传入roundup函数做除法运算,就会触发类型不匹配的报错。
  • 你之前尝试修改运算表达式的方向不对,问题根源不在运算逻辑,而在传入参数的类型错误。
修复方法

只需要修改读取环境变量的代码行,读取时直接转为整数即可:

# 原代码
pdiv=os.environ["div"]
# 修改为
pdiv = int(os.environ["div"])
其他潜在问题修复

你提供的代码中还有两处逻辑错误,也需要同步修改避免后续报错:

  1. 位数判断逻辑错误:原代码中if z == 4、elif z == 5的判断条件错误,z是向上取整后的整数值,你实际要判断的是数字位数,对应变量是divide:
# 修改前
if z == 4: 
   byte=str(array[0]) +'k'
elif z == 5:
    byte=str(array[0]) + str(array[1]) + 'k'

# 修改后
if divide == 4: 
   byte=str(array[0]) +'k'
elif divide == 5:
    byte=str(array[0]) + str(array[1]) + 'k'
  1. 文件关闭未生效:原代码末尾file.close没有加括号,并未实际调用关闭方法,建议修改为:
file.close()
# 更稳妥的写法是使用with上下文管理器,无需手动关闭文件:
with open("Bytes.txt", "w") as file:
    file.write(byte)

内容的提问来源于stack exchange,提问作者Jesse Hix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 17:48:02