2012-02-29 81 views
-1

我想要一種方法,使我能夠順序輸出文件到一個文件夾,並給他們一個存儲在數組中的名稱。python中的文件的順序輸出

下面是數據的佈局:

16837,144335,LOC516870 
141961,198534,LOC100337147 
223927,257577,LOC100849016 
267259,273010,LOC512435 
269335,277567,LOC100300061 

我已經在使用閱讀:

from numpy import * 
x,y=genfromtxt('C:\\Users\\Mohammed\\Desktop\\positions1.txt', dtype=None, delimiter=',', usecols=[0,1],unpack=True) 
z=genfromtxt('C:\\Users\\Mohammed\\Desktop\\positions1.txt', dtype='|S12', delimiter=',', usecols=[2],unpack=True) 
exit 

現在我想建立一個do循環名稱與變量Z連續的文件as

LOC516870.txt 
LOC100337147.txt 

等等。

我試過如下:

for i in range (6): 

f = open("C:\\Users\\Mohammed\\Desktop\\Sequences\\'z'.txt", 'wt') 

f.write(Seq) 

f.close() 

雖然我知道類似的代碼將在Perl的工作,它沒有在python工作,它說,它的語法無效!

您的幫助將不勝感激。

謝謝!

+0

請提供錯誤消息。 – Odomontois 2012-02-29 21:53:42

+0

您至少需要了解:[字符串格式](http://docs.python.org/py3k/library/string.html#format-examples),['os.path.join'](http:/ /docs.python.org/py3k/library/os.path.html#os.path.join),並學習關於['open()as'](http://docs.python.org/py3k/tutorial /inputoutput.html#reading-and-writing-files)不會受到傷害。 *這裏沒有人會爲你寫代碼* – 2012-02-29 22:29:01

回答

1

假設蟒蛇2.7:

f = open("C:\Users\Mohammed\Desktop\Sequences\%s.txt" % z, 'wt') 

其中Z是您要的名稱和變化,你去通過循環使用您的變量。

用於Python 3:

f = open("C:\Users\Mohammed\Desktop\Sequences\{0}.txt".format(z), 'wt') 
+0

謝謝yokuyuki。我試圖使用你的代碼,它不工作,也許是因爲我有python 2.6。不幸的是,我必須保持它,因爲numpy不支持Windows的更高版本,我使用numpy導入變量z,因爲你可以看到,因爲我是新的python我仍然找不到更好的方式來導入它直接放入數組中。我會繼續玩你的代碼,看它是否會起作用。謝謝! – modi2020 2012-03-01 03:19:31

+0

我想我得到它:問題是,python正在尋找文件LOC516870.txt,LOC100337147.txt等,當他們不存在時:它輸出以下消息:IOError:[Errno 2]沒有這樣的文件或目錄:「C:\\ Users \\ Mohammed \\ Desktop \\ Sequences \\ ['LOC516870''LOC100337147''LOC100849016'] .txt ,,,這是真的,因爲我想創建所有這些文件!我不知道是否有一種方法可以在python中重新創建它們嗎? – modi2020 2012-03-01 03:37:47

+0

我明白了:這段代碼有訣竅:對於範圍內的我(806): f = open('C:\ Users \ Mohammed \ Desktop \ Sequences \%s.txt'%(z [i]),'wt') – modi2020 2012-03-01 04:33:06