在python中将文本转换为数字 [英] Conversion text to number in python

查看:50
本文介绍了在python中将文本转换为数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

输入是一个文本表-一些列是数字,一些文本.我有Python脚本将此文本文件转换为xlsx.在Excel或Libre中打开后,所有字段均为文本.是否可以将某些列转换为数字?

cat script.py:

 导入csv导入系统从xlsxwriter.workbook导入工作簿#添加一些命令行逻辑以读取文件名.tsv_file = sys.argv [1]xlsx_file = sys.argv [2]#创建一个XlsxWriter工作簿对象并添加一个工作表.工作簿=工作簿(xlsx_file)工作表= workbook.add_worksheet()#创建一个TSV文件阅读器.tsv_reader = csv.reader(open(tsv_file,'rb'),delimiter ='\ t')#从TSV文件中读取行数据,并将其写入XLSX文件.对于行,枚举(tsv_reader)中的数据:worksheet.write_row(row,0,data)#关闭XLSX文件.workbook.close() 

运行脚本:

  python script.py in.txt out.xlsx 

我想更改脚本,以将某些列转换为文本,将某些列转换为数字,并保持xlsx格式.知道怎么做吗?

解决方案

您可以使用 strings_to_numbers XlsxWriter构造函数选项.从

input is a text table - some columns are numbers and some text. I have python script to convert this text file to xlsx. After open in Excel or Libre all fields are text. Is there any option to convert some columns to number?

cat script.py:

import csv
import sys
from xlsxwriter.workbook import Workbook

# Add some command-line logic to read the file names.
tsv_file = sys.argv[1]
xlsx_file = sys.argv[2]

# Create an XlsxWriter workbook object and add a worksheet.
workbook = Workbook(xlsx_file)
worksheet = workbook.add_worksheet()

# Create a TSV file reader.
tsv_reader = csv.reader(open(tsv_file, 'rb'), delimiter='\t')

# Read the row data from the TSV file and write it to the XLSX file.
for row, data in enumerate(tsv_reader):
    worksheet.write_row(row, 0, data)

# Close the XLSX file.
workbook.close()

run script:

python script.py in.txt out.xlsx

I would like to change script to convert some columns to text and some to numbers and keep xlsx format. Any idea how to do that?

解决方案

You can use the strings_to_numbers XlsxWriter constructor option. From the docs:

strings_to_numbers: Enable the worksheet.write() method to convert strings to numbers, where possible, using float() in order to avoid an Excel warning about "Numbers Stored as Text". The default is False. To enable this option use:

workbook = xlsxwriter.Workbook(filename, {'strings_to_numbers': True})

Example:

import xlsxwriter

workbook = xlsxwriter.Workbook('test.xlsx', {'strings_to_numbers': True})
worksheet = workbook.add_worksheet()

worksheet.write(0, 0, 'Hello')
worksheet.write(1, 0, '123') # Write this string as a number.

workbook.close()

Output:

这篇关于在python中将文本转换为数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆