2012-04-25 18 views
-2

これは私が持っているものです。私はファイルにプログラムを書き込もうとしています

""" 

Author: Michael Wellman (wellmanm) 
Title: pa10.py 
Description: Deciphering a document using pennymath. 

""" 

def decode(inputfile,outputfile): 
    **inputfile = open("superDuperTopSecretStudyGuide.txt","rU").read() 
    outputfile = open("translatedguide.txt","w")** 
    count = 0 
    aList = [] 
    for words in inputfile: 
     aList.append(words) 
     charCount = len(aList) 
     **outpufile.write(aList)** 
     while count<charCount: 
      print aList[count], 
      if (aList[count].isalpha()):    
       if (ord(aList[count])>90):   
        count = count + ord(aList[count])-95  
       else:         
        count = count + ord(aList[count])-63  
      else: 
       if (aList[count].isdigit()):  
        count = count + ord(aList[count])-46    
       else: 
        count = count + 6       
    **inputfile.close() 
    outputfile.close()** 

TXTファイルは私の教授からです:P

太字の部分が最も重要であり、私は信じています。

どのような考えですか?

+4

一般的なフィードバックを求めているのですか、修正したい問題がありますか?一般的なフィードバックが必要な場合は、[コードレビュー](http://codereview.stackexchange.com/)サイトがこのタイプの質問に適しています。 – Darthfett

+1

あなたが聞いている唯一の疑問は、「どのような考えですか?」です。ここでは、回答者の大多数が「はい」と答えてくれると確信しています。しかし、実際の質問にこのプログラムのいくつかの側面がある場合は、それを尋ねてください。 –

答えて

2

コードを実行しようとしましたか?

あなたがライン

outpufile.write(aList) 

参照に関するエラーメッセージを取得したいならば、私が思うに、file.write()メソッドのドキュメンテーション文字列が明確に述べている:

書き込み(STR) - >なし。文字列strをファイルに書き込みます。

バッファのために、 のファイルが書き込まれたデータを反映する前に、flush()またはclose()が必要な場合があることに注意してください。

strの代わりにlistを指定しています。

outpufile.write(''.join(aList)) 

または

outputfile.write(aList[-1]) 

または任意のニーズに合ったにそれを変更してみてください。また、リストをクリアすることはありませんので、inputfileを繰り返して、最初の文字、次に1番目と2番目、3番目の文字などを書きます。

最後にinputfileを閉じようとしています。これは、メソッドがstrを返すため、ファイルではなく実際にはstrです。

P.S.文字列の場合は変数inputfileを、文字の場合はwordsを呼び出してはいけません。それは誰にも決して助けません。

+1

「単語」は1文字なので、aListの各要素もそうです。 inputfileは文字列であるためです。私の思考は、コードが意図したとおりのことを行っていない可能性がありますが、それが何であるかはわかりません。 – greggo

+0

ああ、そうだよ。コードは本当に誤解を招く。私は少し答えを編集します。 –

関連する問題