Как написать текстовый файл в python3.x? - PullRequest
1 голос
/ 12 апреля 2019

Я не могу записать в текстовый файл.Моя функция выглядит следующим образом.Файл создан, но после выполнения кода файл остается пустым.Я не могу понять, в чем проблема.

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 Ответ

1 голос
/ 12 апреля 2019

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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...