Re: [請教]如果要用fortran同時開10000個txt檔......

看板Programming作者 (依然動物先生)時間18年前 (2007/02/16 10:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串18/18 (看更多)
※ 引述《Bourbaki.bbs@bbs.ccns.ncku.edu.tw (知恩 感恩 報恩 :))》之銘言: : ※ 引述《Bourbaki (知恩 感恩 報恩 :))》之銘言: : > 有沒有什麼方式可以用簡單的指令一口氣開10000個檔啊 : > 因為每個一個檔就要寫一次open 感覺很麻煩 : > 而且我要開的txt檔都正好的編號順序的 從0000.txt到9999.txt : > 如果要一個一個打的話 就得打一萬次啊XD : > open(10000, file = "0000.txt") : > open(10001, file = "0001.txt") : > open(10002, file = "0002.txt") : > ...... : > .... : > open(19998, file = "9998.txt") : > open(19999, file = "9999.txt") : > 打完後大概也快斃了吧 : > : 很抱歉我的異想天開造成大家的困擾.... : 這是我在做流平模擬時遇到的麻煩 : 當中的每一個檔都是某一個時間點儲存的格點數據 : 而我需要每一個檔案當中的某幾行幾列的數據來做計算 : 其實最初是打算開一檔案 讀出我要的數據 然後關閉檔案 : 然後再開下一個檔案 再讀 再關 再開下下一個 : 如此如此 重複把所有檔案中需要的數值讀出來 : 只是想到要這樣寫n行實在是令人卻步 : 所以才一想天開po版請教有沒有什麼偷吃步可以省下重複的動作 : 雖然後來自己想到一個很無力的做法 : 可以很輕鬆地用open(xxxxx, file = "xxxx.txt")一次寫下一萬行 : 但是事實就如同大大們講的一樣 : 執行是可以執行啦 : 不過沒辦法同時開這麼多個檔 囧!? : 最後還是決定一步一腳誠實地做事啦 : 最後謝謝各位大大們的分享 : 也祝各位新年快樂 : 謝謝 :) : 如果你的檔案都是"已經存在"的 那只需要做個file list 再讀進來即可 例如你的data file存放在 /bourbaki/simulation/data 直接在此目錄下 ls > list 這樣就會把ls顯示的結果 放到list這個新的文字檔內 [換言之就是 這個目錄下的檔案] 裡面應該會是 0000.txt 0001.txt ... ... 9999.txt 這樣你的program就只需要這樣弄 program bourbaki integer i chatacter*8 name open (11,file='list',form='formatted') i=0 20 read (11,'(a8)',end=21) name !讀入list裡面的檔名 i=i+1 write (*,*) i,name !顯示編號與處理檔名 open (30,file=name) ...... !這邊寫你需要處理的code close (30) !打開之後關閉起來 goto 20 21 continue stop end 用這種方法幾乎可以吃遍所有開檔 尤其是那種沒有次序 或是 沒有軌跡可循的大量檔名 把整個filelist先建立好之後 再來開檔即可 我猜的出來大概是因為你不想依照每個檔案都開一次來寫 可是事實上開一個寫一個比較安全 也比較快 因為你可以做了30個檔案就先記錄一次 這樣即使機器掛點 也可以檢查一下log處理到哪 再從壞掉的那邊補起來繼續做 我最多一個程式處理過 365*55*3xx 個檔案 (365天 55年 300多個雨量測站) 幾乎也都是用這種方法讀入之後重新寫出放置在 yyyy/mm/dd/stnno的位置上 -- ▲▲▲▲ 我與我的酷企鵝 - 台客 相本: http://photo.xuite.net/animalion 網誌: http://blog.xuite.net/animalion M A R U. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 192.83.177.177
文章代碼(AID): #15rHHlRU (Programming)
討論串 (同標題文章)
文章代碼(AID): #15rHHlRU (Programming)