python - 如何从浮点数转换为整数到字符串?以 10 为底的 int() 的无效文字:'x'
问题描述
如何将 float 转换为 int 到字符串?
with open(DATA_DIR+'/test.csv', 'r') as inp:
reader = csv.DictReader(inp, delimiter=',',fieldnames = ['Id', 'Target'])
for row in csv.reader(inp):
text_file.write("Text "+str(int(row[1])))
错误:ValueError: invalid literal for int() with base 10: '323.0'
解决方案
编辑:CSV 解析器已经在读取您尝试转换为字符串的数据。该字符串具有不会转换为 int 的小数点值。它会将其转换为浮动。
这里有两种方法可以做到这一点:
- 只需拆分字符串并使用整数部分
- 在你的例子中
text_file.write('Text {:.0f}'.format(float(row[1]))
使用第二种方法,您基本上将其转换为浮点数,此后您不关心小数点右侧的任何内容。所以.0f
表示您不需要小数点后的任何内容,包括.
. 可以在下面粘贴的链接中了解有关此格式的更多信息。
随着您深入挖掘,您应该继续使用type()
来识别传入的数据,然后再决定如何处理它。
原始部分:您不必转换数据来实现您想要的。最后,您希望将文件作为字符串写入文件。如果你从 csv 得到的是一个浮点数,那么你可以简单地将你的字符串格式化为
write_line = 'Text {:06.2f}'.format(row[1])
text_file.write(write_line)
当然,你可以压缩这两条线。python的文档中有更多信息 - https://docs.python.org/3/tutorial/inputoutput.html
推荐阅读
- git - 没有添加到 repo,但它仍然在拉取时显示了一些额外的日志
- swift - 我的应用程序中的图像(编码 base64)无法通过 Web 服务器发送
- python - pandas MultiIndex:获取特定级别的值和 iloc
- c# - 等待多个函数参数时的性能
- java - 使用 Spring Boot 获取大量数据
- reactjs - NPM 表示 1 个漏洞需要人工审核且无法更新
- machine-learning - 如何在 naive_bayes MultinomialNB 中计算 feature_log_prob_
- oracle - Oracle 过程到 REST API
- mongodb - 如何在 MongoDB 中展开数组?
- python - 'flag' 变为 False 时 Python (py.exe) 关闭