【发布时间】:2019-07-08 10:29:46
【问题描述】:
我正在尝试使用以下代码从目录中读取多个.csv 文件,然后将输出结果的每一行存储为矩阵的一行:
import os, fnmatch
import csv
listOfFiles = os.listdir('C:/Users/m/Desktop/csv_files')
pattern = "*.csv"
for entry in listOfFiles:
if fnmatch.fnmatch(entry, pattern):
with open(entry, newline='') as csvfile:
spamreader = csv.reader(csvfile)
for line in spamreader:
print(line)
上面代码的输出是这样的:
['DATE', 'OPEN', 'HIGH', 'LOW', 'CLOSE', 'PRICE', 'YCLOSE', 'VOL', 'TICKS']
['13950309', '1000000.00', '1000000', '1000000', '1000000.00', '1000000.00', '1000000', '2100000', '74']
['13950326', '1050000.00', '1050010', '1050000', '1050001.00', '1050000.00', '1000000', '1648', '5']
['13950329', '1030200.00', '1060000', '1030200', '1044474.00', '1042265.00', '1050001', '28469', '108']
但我喜欢从数据中删除引号并有这样的行:
[13971116, 1020002.00, 1020002, 1020000, 1020001.00, 1020000.00, 1020002, 107, 4]
并将它们存储为矩阵的行。我该怎么做?(我有numpy 用于矩阵工作的库)。
【问题讨论】:
-
line中没有引号。您看到引号是因为您将 python 列表 (line) 转储到输出。使用print(line[0]),您会看到它只是数字。 -
我像你说的那样更改了代码,但结果是每行一个数字,并破坏了我在帖子中复制的结构。
-
啊,我明白了,这与引号无关,但您确实想将字符串转换为数字。检查我的答案。