【问题标题】:How to write text file in python3.x?如何在 python3.x 中编写文本文件?
【发布时间】:2019-04-12 10:57:10
【问题描述】:

我无法写入文本文件。我的功能看起来像这样。该文件已创建,但在运行代码后该文件仍为空。我无法弄清楚问题是什么。

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

【问题讨论】:

    标签: python-3.x filehandle


    【解决方案1】:

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

    【讨论】:

    • 文件已创建,但上面没有写任何内容......也是您的示例。
    猜你喜欢
    • 1970-01-01
    • 2019-04-07
    • 2011-11-04
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多