【发布时间】:2019-03-01 17:57:27
【问题描述】:
我一直在尝试从 excel 文件中提取数据,将其转换为数组,然后将其写入其他一些当前未定义的文件类型(因此 .txt 文件是当前占位符文件类型)。我确定代码相当丑陋,但它可以工作:
import os
import pandas as pd
import glob
import numpy as np
def xlxtract():
for filename in glob.glob('*.xlsx'):
ExcelFile = filename[:-5]
RosewoodData = pd.read_excel(ExcelFile + '.xlsx')
DataMatrix = np.array(RosewoodData)
DataMatrixString = np.array2string(DataMatrix, precision=4, separator=' ')
NewFile = open(ExcelFile + 'MATRIX.txt', 'w')
NewFile.write(' ' + DataMatrixString[1:-1])
NewFile.close()
print('Your file has been printed to ' + ExcelFile + '.txt')
无论如何,我遇到的问题是,虽然它确实打印到 .txt 文件,但括号没有被删除。输出看起来是这样的(生成随机数作为测试):
[ 20 6]
[ 76 2]
[ 93 97]
[ 29 75]
[ 75 69]
[ 77 81]
[ 19 51]
[ 70 100]
[ 94 68]
我想删除括号,但似乎没有任何一种方法可以做到这一点。任何帮助将不胜感激。
【问题讨论】:
-
DataMatrixString[1:-1] 应该删除括号..
-
array2string实际上只是用于向用户显示数组,而不是用于以任何特定格式写出它们。np.savetxt可能是你想要的。 -
@bakka,这就是我一直在阅读的内容,但文本文件仍然显示括号。它删除了数组的初始和结束括号,但没有删除所述数组的各个行的括号。
-
@Eric,我快速查看了 np.savetxt ,似乎这仅用于将文本保存到 .txt 文件。虽然我可以使用它,并且只需添加另一部分代码来将 .txt 文件转换为我最终需要的文件类型,但最好有一个动态的函数,该函数可以动态地确定可以将数据保存为的文件类型。
-
您可能对哪些其他类型的文件类型感兴趣?
标签: arrays string pandas numpy glob