2017-04-14 7 views
0

ユーザが質問された一連の質問に回答を保存するテキストファイルを作成する必要があります。このファイルには、ファイル名として固有のケース番号が必要です。以下のコードは、ファイルとは別に、テキストファイルではなく、そのファイルタイプが "file"と書かれています。テキストファイルの名前として変数を含むテキストファイルを作成する

ファイルには、のファイル番号としてrnumberファイルの内容が含まれている必要があります。それは本当に重要です。

これはどのように行うことができますか?

open('"'+str(rnumber)+'.txt"', "w") 

あなたは "連結" しなければならない

def casenumberallocator(filename, answers, typeofdevice): 
    os.chdir("H:\V4 Program\Questions") 
    availablecasenumber = "not found" 
    while availablecasenumber == "not found": 
     rnumber = random.randint(1, 100) 
     if rnumber in randomnumberlog: 
      one = 1 
     else: 
      availablecasenumber = "found" 
      randomnumberlog.append(rnumber) 
    case = dict() 
    case[rnumber] = {"Case number": rnumber, 
       "Device": typeofdevice, 
       filename: answers} 
    casestring = ''.join('{}{}'.format(key, val) for key, val in case[rnumber].items()) 
    os.chdir("H:\V4 Program\Case_files") 
    with open(str(rnumber), "w") as file: 
    #I have also tried str(rnumber).txt, and str(rnumber)".txt" but neither works. 
     file.write(casestring) 
    os.chdir("H:\V4 Program") 
+0

? 'str(rnumber).txt'は、属性文字列にアクセスしようとすると、明らかに属性文字列になりません。また、ファイルを特定のデフォルトプログラムに関連付ける限り、ファイル拡張子が何であるかは関係ありません。ただテキストエディタで開き、見てください。 – jonrsharpe

+0

このような余分な 'chdir'を必ずしもしないでください。別のフォルダにあるファイルを開くには、 'open'の呼び出しでファイル名の前にそのフォルダを追加します。 – Matthias

答えて

0

... ...私は思う...

+0

ファイル名自体に引用符を含める場合を除き、余分な引用符は必要ありません。 – jkdev

0

おかげステファノ、あなたの答えを少し編集されたバージョンが働いていました。

open(str(rnumber)+'.txt' 
0

また、挿入する前に文字列に自動的に変換する文字列補間を使用することもできます。あなたがもう一度 `str.format`を使用していないのはなぜ

"{}.txt".format(rnumber) 

それとも

"{}.{}".format(rnumber, "txt") 
関連する問題