2011-12-30 74 views
0

該腳本將使用yearid變量生成多個文件。這些文件需要放入與yearid匹配的文件夾中。如何將它們寫入正確的文件夾?根據Python中的變量將文件寫入目錄

file_root_name = row["file_root_name"] 
year = row["year"] 
id = row["id"] 
path = year+'-'+id 
try: 
    os.makedirs(path) 
except: 
    pass 
output = open(row['file_root_name']+'.smil', 'w') 
output.write(prettify(doctype, root)) 
+1

你問如何把目錄和使用'os.path.join'共同文件名?那是你在掙扎的東西嗎? – 2011-12-30 23:11:36

+0

該腳本將使用'year'和'id'變量生成多個文件。這些文件需要放在與'year'和'id'匹配的文件夾中。 – 2011-12-30 23:14:25

+0

這就是問題所在。文件夾名稱和文件名與「os.path.join」組合在一起。你問如何使用'os.path.join'? – 2011-12-30 23:15:30

回答

2

如果我正確理解你的問題,你想這樣做:

import os.path 
file_name = row['file_root_name']+'.smil' 
full_path = os.path.join(path, file_name) 
output = open(full_path, 'w') 

請注意,這不是很常見的Python中使用+操作字符串連接。雖然不是你的情況,但大字符串的方法不是很快。 我寧願:

file_name = '%s.smil' % row['file_root_name'] 

和:

path = '%i-%i' % (year, id) 
+0

是的!謝謝。這是我需要的! – 2011-12-30 23:16:27

+0

謝謝你的澄清。我剛剛開始並通過實例學習。 – 2011-12-30 23:20:02

+0

與你的方言我得到'TypeError:%d格式:一個數字是必需的,而不是str' – 2011-12-30 23:20:55