如何从命令行传递文件名并在genfromtxt中使用它?

时间:2015-05-05 17:56:18

标签: python file-io io

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

    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但是它没有改变)所以请...帮助

1 个答案:

答案 0 :(得分:0)

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

from sys import argv

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

[1:]之后的argv是因为你没有得到第一个命令行参数,它只是你的Python脚本文件的名称。