在python中将文本转换为数字 [英] Conversion text to number in 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 theworksheet.write()
method to convert strings to numbers, where possible, usingfloat()
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屋!