有没有办法使用给定目录中的 numpy.genfromtxt 从 csv 读取数据?
Posted
技术标签:
【中文标题】有没有办法使用给定目录中的 numpy.genfromtxt 从 csv 读取数据?【英文标题】:Is there a way to read data from csv using numpy.genfromtxt from a given directory? 【发布时间】:2021-11-20 16:04:21 【问题描述】:我应该通过 argparse 读取 csv 文件路径。例如,csv 文件的路径是 args.X,我该如何将这些数据加载到 2d numpy 数组中?现在我使用的是Data = np.genfromtxt(args.X, delimiter=",")
,这在 args.X 包含文件名而不是路径并且文件与 python 脚本位于同一文件夹中时有效。当数据不在同一个文件夹中并且我获得了文件的路径时如何读取?
【问题讨论】:
它会抛出任何错误吗?是FileNotFoundError
我的路径是 D:\Amit\ell409\2019anz1787\gaussian.csv 作为输入,错误是“D:Amitell4092019anz1787gaussian.csv not found”
这不是 Windows 中的有效路径...我想你的意思是 D:\\Amitell4092019anz1787gaussian.csv
对吧?
所有反斜杠都被杀死了。我会更新我的答案
【参考方案1】:
您似乎遇到了反斜杠消失的问题,这很奇怪。无论如何,您最好告诉 argparse 您想要一个 Path
对象(并使用一个)。你可能想要这样的代码:
import numpy as np
from pathlib import Path
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument("IN", type=Path)
parser.parse_args()
inf = args.IN.expanduser().resolve()
if not inf.exists():
raise FileNotFoundError(f"No such file: inf")
Data = np.genfromtxt(inf, delimiter=",")
【讨论】:
谢谢!这行得通 如果确实如此,请随意接受 :) 作为在黑暗中的镜头,我认为某些字符串转义出了问题,因为您在错误消息中缺少 any 斜杠。但通常使用 Path 作为路径,它要容易得多 是的,事实证明,由于某些转义序列,斜线被丢弃以上是关于有没有办法使用给定目录中的 numpy.genfromtxt 从 csv 读取数据?的主要内容,如果未能解决你的问题,请参考以下文章
给定 O(1) 或 O(log N) 时间中的源集,有没有办法在数学上生成排序排列和数组的给定索引?