我正在尝试将程序写入文件

时间:2012-04-25 21:17:50

标签: python python-2.7

这就是我所拥有的。

"""

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

我认为,加粗的部分是最重要的。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您是否尝试过运行代码?

我想如果您能收到有关该行的错误消息

outpufile.write(aList)

请参阅file.write()方法的文档字符串明确说明:

  

写(str) - &gt;没有。将字符串str写入文件。

     

请注意,由于缓冲,之前可能需要flush()或close()   磁盘上的文件反映了写入的数据。

您提供的是list而不是str。尝试将其更改为

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

outputfile.write(aList[-1])

或任何符合您需求的东西。此外,您永远不会清除列表,因此,当您遍历inputfile时,您将编写第一个字符,然后是第一个字符和第二个字符,然后是前三个字符,等等。这是有意的吗?

最后,您尝试关闭的inputfile实际上是str,而不是文件,因为file.read()方法会返回str

P.S。如果它是一个字符串,请永远不要调用您的变量inputfile,如果它是一个字符,则永远不要调用words。这对任何人都没有帮助。