以下の関数を使用して、ファイルをディレクトリにコピーし、関数が呼び出されたディレクトリに再作成します。私がipythonでコード部分を部分的に実行しているとき、正常に動作しています。ここで関数を呼び出すときに 'subscriptableでない'エラーが発生する
機能
import os
import shutil
from find import find
def recreatefiles(filedir):
currdir = os.getcwd() # get current directory
dirname = 'maindir'
dir = os.path.join(currdir,dirname)
if not os.path.exists(dir):
os.makedirs(dir)
#Copy .in files and create a template
filein = find('*.in',filedir) # find is a function created
shutil.copy2(filein[0], os.path.join(dir,'template.in'))
エラーに関するすべてのアイデアは、次のとおりです。しかし、私はそれが私に次のエラーを与えている機能として、それを実行しますか?おかげ
編集:ここでは
import os, fnmatch
def find(pattern, path):
result = []
for root, dirs, files in os.walk(path):
for name in files:
if fnmatch.fnmatch(name, pattern):
if not name.startswith('.'):
result.append(os.path.join(root, name))
return result
EDIT2を見つけるためのコードは次のとおりです。ipython
[1]: filein
[2]: ['/home/Projects/test.in']
からfileinの出力は基本的には、ただ一つのファイルがあります。私はshutil.copy2でfilein [0]を使用して角括弧を削除しました
おそらく 'find'にエラーがあります。ソースコードを投稿する。 –
このコードで 'type 'object is subscriptable'をどうやって得ることができるのかわかりません。しかし、 'filein'が空であれば' list index of range'を得ることができます。 – NPE
うーん、 'find'は完璧です。私はエラーも見られません。 –