2013-06-26 31 views
-3

我想製作一個程序,您可以輸入作業名稱,類別和支付,並且我正在嘗試寫入輸入的作業名稱,類別並支付給文件以存儲數據,但我遇到問題了。Python作業收集器文件I/O

class Job(object): 
    def __init__(self, jobName = '', jobCategory = '', jobPay = ''): 
     self.jobName = jobName 
     self.jobCategory = jobCategory 
     self.jobPay = jobPay 

    def getName(self): 
     self.jobName = input("What is the Job Title: ") 

    def getCategory(self): 
     self.jobCategory = input("What is the Job Category: ") 

    def getPay(self): 
     self.jobPay = input("What is the Job Pay: ") 

    def displayJob(self): 
     print("Job: " + self.jobName) 
     print("Job Category: " + self.jobCategory) 
     print("Job Pay: " + self.jobPay) 
     print() 


def Main(): 
    global NewJob 
    NewJob = Job() 
    NewJob.getName() 
    NewJob.getCategory() 
    NewJob.getPay() 
    print() 
    NewJob.displayJob() 
    myFile = open('newFile.txt', 'w') 
    myFile.write(NewJob.displayJob()) 
    myFile.close() 

Main() 
+2

什麼樣的問題? – Brian

+0

另外,Python不是* Java也不是C# –

回答

2

displayJob()打印到標準輸出,而不是您的文件。你必須返回一個字符串:

def displayJob(self): 
    results = [ 
     "Job: " + self.jobName, 
     "Job Category: " + self.jobCategory, 
     "Job Pay: " + self.jobPay 
    ] 

    return "\n".join(results) 

或者通過file作爲參數,但是這看起來有點奇怪:

import sys 

def displayJob(self, file=sys.stdout): 
    print("Job: " + self.jobName, file=file) 
    print("Job Category: " + self.jobCategory, file=file) 
    print("Job Pay: " + self.jobPay, file=file) 
    print(file=file) 

... 

NewJob.displayJob(myFile) 
0

假設問題沒有被寫入到文件中。 Job.displayJob()不會返回任何要寫入文件的文件,只會將其顯示到stdout。找出你希望你的對象如何序列化到這個文件並且有一個返回該字符串的方法。