【问题标题】:Python Job Collector Files I/O [closed]Python 作业收集器文件 I/O [关闭]
【发布时间】:2013-06-26 20:31:35
【问题描述】:

我正在尝试制作一个可以输入职位名称、类别和薪酬的程序,并且我正在尝试将输入的职位名称、类别和薪酬写入文件以存储数据,但我遇到了问题这样做。

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()

【问题讨论】:

  • 什么样的问题?
  • 另外,Python 不是 Java 也不是 C#

标签: python file class function file-io


【解决方案1】:

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)

【讨论】:

    【解决方案2】:

    假设问题是没有写入文件。 Job.displayJob() 不会返回要写入文件的任何内容,它只会将其显示到标准输出。弄清楚你希望你的对象如何序列化到文件中,并有一个返回该字符串的方法。

    【讨论】:

      猜你喜欢
      • 2016-03-06
      • 1970-01-01
      • 2015-07-20
      • 2015-02-27
      • 2015-12-25
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多