Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 3.x 如何在python3.x中编写文本文件?_Python 3.x_Filehandle - Fatal编程技术网

Python 3.x 如何在python3.x中编写文本文件?

Python 3.x 如何在python3.x中编写文本文件?,python-3.x,filehandle,Python 3.x,Filehandle,我无法写入文本文件。我的函数是这样的。文件已创建,但在运行代码后,文件仍为空。我想不出是什么问题 def compare(prjCode, prjName, stCode, stName, dCode, dName, sdCode, sdName): with open('C:\\Users\\NCOG1\\Desktop\\test.txt', 'w') as f: percentMatch = 0 sdLen = len(sdName)

我无法写入文本文件。我的函数是这样的。文件已创建,但在运行代码后,文件仍为空。我想不出是什么问题

def compare(prjCode, prjName, stCode, stName, dCode, dName, sdCode, sdName):
    with open('C:\\Users\\NCOG1\\Desktop\\test.txt', 'w') as f:
        percentMatch = 0
        sdLen = len(sdName)
        prjLen = len(prjName) 
        if (sdLen > prjLen): 
            if ((sdName.find(prjName) != -1)):
                res = sdName.index(prjName)
                percentMatch = (prjLen/sdLen)*100
                #print(prjCode,prjName,sdCode,sdName,str(round(percentMatch)),stCode, stName, dCode, dName)
                #print(prjCode + "," + prjName + "," + sdCode + "," + sdName + str(round(percentMatch)) + "," + stCode + "," + dCode + "," + sdCode)
                f.write(prjCode + "," + prjName + "," + sdCode + "," + sdName + "," + str(round(percentMatch)) + "," + stCode + "," + stName + "," + dCode + "," + dName + "%\n")
            else:
                res = 0
                #print(res)
        elif (prjLen >= sdLen):
            if ((prjName.find(sdName) != -1)):
                res = prjName.index(sdName)
                percentMatch = (sdLen/prjLen)*100
                #print(prjCode,prjName,sdCode,sdName,str(round(percentMatch)),stCode, stName, dCode, dName)
                #print(prjCode + "," + prjCode + "," + sdCode + "," + sdName + str(round(percentMatch) + "," stCode + "," + dCode + "," + sdCode)
                f.write(prjCode + "," + prjName + "," + sdCode + "," + sdName + "," + str(round(percentMatch)) + "," + stCode + "," + stName + "," + dCode + "," + dName + "%\n")                                                    
            else:
                res = 0
                #print(res)  
    f.close()

1.为了在文件中写入内容,您需要将那些文本或int转换为字符串,而您没有这样做,这是主要问题

2.您键入的路径未呈现,因为它未标识为字符串,因此您需要将路径转换为原始字符串,以便在开始我在更正代码中提到的路径之前添加“r”

3.例如,我为伪数据调用函数compare(),现在检查下面的代码并尝试运行,如果您有任何疑问,请告诉我

def compare(prjCode, prjName, stCode, stName, dCode, dName, sdCode, sdName):
    with open(r'C:\\Users\\NCOG1\\Desktop\\test.txt', 'w') as f:
    percentMatch = 0
    sdLen = len(sdName)
    prjLen = len(prjName) 
    if (sdLen > prjLen): 
        if ((sdName.find(prjName) != -1)):
            res = sdName.index(prjName)
            percentMatch = (prjLen/sdLen)*100
            #print(prjCode,prjName,sdCode,sdName,str(round(percentMatch)),stCode, stName, dCode, dName)
            #print(prjCode + "," + prjName + "," + sdCode + "," + sdName + str(round(percentMatch)) + "," + stCode + "," + dCode + "," + sdCode)
            f.write(str(prjCode) + "," + prjName + "," + str(sdCode) + "," + sdName + "," + str(round(percentMatch)) + "," + str(stCode) + "," + stName + "," + str(dCode) + "," + str(dName) + "%\n")
        else:
            res = 0
            #print(res)
    elif (prjLen >= sdLen):
        if ((prjName.find(sdName) != -1)):
            res = prjName.index(sdName)
            percentMatch = (sdLen/prjLen)*100
            #print(prjCode,prjName,sdCode,sdName,str(round(percentMatch)),stCode, stName, dCode, dName)
            #print(prjCode + "," + prjCode + "," + sdCode + "," + sdName + str(round(percentMatch) + "," stCode + "," + dCode + "," + sdCode)
            f.write(str(prjCode) + "," + prjName + "," + str(sdCode) + "," + sdName + "," + str(round(percentMatch)) + "," + str(stCode) + "," + stName + "," + str(dCode) + "," + str(dName) + "%\n")                                                    
        else:
            res = 0
            #print(res)  


compare(1,"harsh",0,"fff",34,32,78,"hharshbhut")

该文件已创建,但没有写入任何内容…与您的示例一样。