2015-05-05 38 views
0

我需要更清楚地解釋,因爲從標題,你不能完全理解我的需求......如何從命令行傳遞文件名並在genfromtxt中使用它?

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)) 

我需要從命令行插入我要分析的文件的名字,因爲我有要對許多不同的文件進行多重分析,並直接從命令行插入它們的名稱將使我的工作更快。你能建議一種方法將其插入功能genfromtxt?可能嗎?

genfromtxt是numpy裏面的一個函數,它允許你在你的txt中拷貝一個列的值到數組中,使用usecols你可以問哪一列要複製到數組中,這樣可以成爲一個多維數組,在這種情況下,IV是四維陣列。

嘗試我上面顯示的方式,genfromtxt不承認%d -> File(在該.txt文件的名稱只是數字,我也試圖與%s,但它並沒有改變),所以請.. HELP

+0

[Python中的命令行參數]的可能重複(http://stackoverflow.com/questions/1009860/command-line-arguments-in-python) – kdopen

+0

您可能想要調查內部的glob()函數相同名稱的模塊('glob')。這裏是一個鏈接到文檔:https://docs.python.org/2/library/glob.html#glob.glob – ArtOfWarfare

回答

0

可能最簡單的方法是通過sys.argv獲得命令行參數,然後遍歷它們,每次將它們傳遞給函數genfromtext(順便提一下,我不知道genfromtext是什麼。但是從你的使用情況來看,我認爲這是第三方模塊np中的一個函數,你也沒有告訴我們任何關於它的信息。)因此,無論如何,你的c頌歌會是這個樣子:

from sys import argv 

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

[1:]argv是這樣你就不會得到的第一個命令行參數,這只是你的Python腳本文件的名稱。

+0

對不起,我是新的python,所以我忘了添加一些細節:D genfromtxt是numpy中的一個函數,它打開一個文件,並在向量中複製你在usecols中聲明的列。 雖然我需要的是添加一串字符(我想傳遞給我的程序文件的名稱)裏面的字符串,包含地址與我的文件夾中的地址...我不知道如果這種方式更清晰。對不起,你不要更清楚。 對不起,我的英文不好! – Ateris

相關問題