Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python作业收集器文件I/O_Python_File_Class_Function_File Io - Fatal编程技术网

Python作业收集器文件I/O

Python作业收集器文件I/O,python,file,class,function,file-io,Python,File,Class,Function,File Io,我正在尝试制作一个程序,您可以输入工作名称、类别和薪资,我正在尝试将输入的工作名称、类别和薪资写入一个文件以存储数据,但我在这样做时遇到了问题 class Job(object): def __init__(self, jobName = '', jobCategory = '', jobPay = ''): self.jobName = jobName self.jobCategory = jobCategory self.jobPay

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

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

假设问题是什么都没有写入文件
Job.displayJob()
不返回任何要写入文件的内容,它只向stdout显示。找出您希望对象序列化到文件的方式,并使用返回该字符串的方法。

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)

什么样的问题?还有,Python既不是Java也不是C#