2017-06-05 11 views
0

pythonの初心者で、ディレクトリのセットを作成しようとして、それぞれにファイルを作成しようとすると、入力名は>​​記号で始まる文字列になりますが、ディレクトリに>が含まれているようにします。変数名の一部を使用してディレクトリを作成する

私は以下のことを試みました。

seq_id = ">seq" 
    dirname = seq_id[1:] 

    print(dirname) 
    if not os.path.isdir('./' + dirname + '/'): 
     os.mkdir('./' + dirname + '/') 

    print("directory made") 

seq_id [1:]ビットを使用してもディレクトリは作成されませんが、印刷されます。だから私は実際にディレクトリを作成しない理由は分かりません。

最終的には、ファイルseq_idsのリスト、> seq1> seq2> seq3などを作成し、それぞれのディレクトリを作成する関数を作成したいと考えています。 (python3.5を使用した作業)

+1

私には複製できません –

+0

質問に表示されるエラーメッセージを追加してください。 – mkiever

+0

だから私はエラーを受け取りません それは、dirnameを表示し、終了コード0で終了したプロセスを返します。 しかし、ディレクトリは作成されていません。 – TJ93

答えて

0

あなたがディレクトリを知っている必要がありますが、あなたの、現在のディレクトリ位置に作成されます。

あなたは/tmp/bar/myscript.pyでフォルダ/tmp/foo/、スクリプトであり、あなたはpython ../bar/myscript.pyディレクトリでそれを実行した場合/tmp/foo/、ない/tmp/bar/に作成されます。

さらに、if not os.path.isdir('./' + dirname + '/'):で考えられるエラーをスキップして何も印刷しないので、ディレクトリがすでに存在するかどうかわかりません。それは代わりに自家製連結のos.path.join使用

import os 

strings = ['>foo', '>bar', '>baz'] 

def make_directories(input_list): 
    for string in input_list: 
     dirpath = os.path.join('./', string[1:]) 
     try: 
      os.mkdir(dirpath) 
     except FileExistsError: 
      print('Directory {} already exists'.format(dirpath)) 
     else: 
      print('Directory {} created'.format(dirpath)) 

make_directories(strings) 
  1. あなたのような何かを行うことができます。常に従うべきベストプラクティスです。

  2. それは、再び、それはあなたが従うべきベストプラクティス(Reference
  3. だそれは物事を印刷しますので、あなたは何が起こっているかを知って、代わりにiftry/exceptを使用しています。
関連する問題