【问题标题】:How do I pass a filename from the command line and use it in genfromtxt?如何从命令行传递文件名并在 genfromtxt 中使用它?
【发布时间】:2015-07-15 14:27:29
【问题描述】:

我需要解释得更清楚,因为从标题你无法完全理解我的需求......

    File = input ("Insert the name of the file: ")

    IV = np.genfromtxt('D:\User\Python\Programms_Python\programms\%d.txt', 
    File, usecols=(1,5,2,5))

我需要从命令行插入我要分析的文件的名称,因为我必须对许多不同的.txt 文件进行多次分析,并且直接从命令行插入它们的名称会使我的工作更快。您能建议一种将其插入函数genfromtxt 的方法吗?可能吗?

genfromtxt 是 numpy 中的一个函数,它允许您将 txt 中的列的值复制到数组中,使用 usecols 您可以询问要在数组中复制的列,这样可以成为多维数组,例如本例IV是一个四维数组。

尝试我上面显示的方式,genfromtxt 无法识别%d -> File.txt 文件的名称只是数字,我也尝试使用%s,但它没有改变)所以请..帮助

【问题讨论】:

标签: python file-io io


【解决方案1】:

可能最简单的方法是通过sys.argv获取命令行参数,然后循环它们,一次将它们传递给你的函数genfromtext(我不知道genfromtext是什么是,顺便说一句。你的问题没有提到它来自哪里。但从你的用法来看,我认为它是第 3 方模块np 中的一个函数,你也没有告诉我们。)所以,无论如何,你的代码看起来像这样:

from sys import argv

for arg in argv[1:]:
    IV = np.genfromtext(arg, usecols=(1,5,2,5))

argv 之后的[1:] 是这样你就不会得到第一个命令行参数,它只是你的 Python 脚本文件的名称。

【讨论】:

  • 对不起伙计,我是 python 新手,所以我忘了添加一些细节:D genfromtxt 是 numpy 中的一个函数,它打开一个文件并将你在 usecols 中声明的列复制到向量中。虽然我需要的是在包含地址的字符串中添加一串字符(我想要传递给我的程序的文件的名称)到包含我的文件的文件夹中......我不知道是否这种方式更清晰。对不起,你没有更清楚。对不起我的英语不好!
猜你喜欢
  • 2021-03-04
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 2023-03-16
  • 2014-07-19
  • 2011-09-28
  • 2021-08-20
  • 1970-01-01
相关资源
最近更新 更多