You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用numpy.genfromtxt读取argparse传入路径下的CSV文件为二维numpy数组

跨目录读取CSV为numpy数组的实现方法

你当前使用的np.genfromtxt本身原生支持绝对路径、相对路径读取,跨目录读取失败大多是路径解析逻辑不符合预期导致的,按以下步骤调整即可:


1 首先确认argparse参数配置正确

参数类型设置为str即可正常接收所有合法路径字符串,配置示例:

import argparse
import numpy as np
import os

parser = argparse.ArgumentParser()
parser.add_argument('-X', type=str, required=True, help='CSV文件路径')
args = parser.parse_args()

2 按使用场景选择路径处理方式

场景1:接收用户传入的任意路径(支持绝对路径、相对于终端工作目录的相对路径)

不需要额外处理,直接传入即可,命令行传路径时如果路径包含空格、中文等特殊字符,给路径外层加双引号包裹即可:

Data = np.genfromtxt(args.X, delimiter=",")

注意:此场景下相对路径是相对于你执行python命令的终端所在目录,不是脚本文件本身的存储目录

场景2:要求相对路径相对于脚本文件的存储目录(和同目录读取时的逻辑一致)

需要先拼接脚本所在目录的绝对路径,自动适配不同操作系统的路径分隔符:

# 获取当前脚本所在的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接得到CSV文件的完整绝对路径
csv_full_path = os.path.join(script_dir, args.X)
# 读取前可增加校验提前定位问题
if not os.path.exists(csv_full_path):
    raise FileNotFoundError(f"CSV文件不存在:{csv_full_path}")
Data = np.genfromtxt(csv_full_path, delimiter=",")

补充说明

  • Windows系统下的路径可以用\或者/作为分隔符,os.path.join会自动适配系统格式,不需要手动替换
  • 绝对路径直接传入即可正常读取,不需要做任何拼接处理

内容的提问来源于stack exchange,提问作者Amit Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:18:02