Функция Python Print, добавляющая нежелательную новую строку - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть скрипт, который читает файл.Файл содержит строки текстовых данных, каждая строка соответствует игроку, а каждый атрибут игрока отделен вкладкой.

Мой скрипт разбивает строку на массив для каждого игрока, а затем просто восстанавливает данныев строку, которую я хочу сохранить в отдельный файл, чтобы каждая отдельная строка в новом файле соответствовала проигрывателю:

# -*- coding: utf-8 -*-

def main():
    exampleDataFile = open("exampleData.txt", "r")
    dataStorageFile = open("playerStrings.txt", "w+")

for line in exampleDataFile:
    modifiedLine = line.replace('“','"').replace('”','"')
    listOfComponents = modifiedLine.split("\t")
    uid = listOfComponents[0]
    gamerID = listOfComponents[1]
    userPhoneNumber = listOfComponents[2]
    _geoloc = listOfComponents[3]
    allocatedTimes = listOfComponents[4]
    clanName = listOfComponents[5]

    gamerString = ('let ' + uid + ' = player(gamerID: "' + gamerID + '", userPhoneNumber: "' + userPhoneNumber + '", _geoloc: makeCoordinates(points: (' + _geoloc + ")), allocatedTimes: makeallocatedTimes(" + allocatedTimes + '), clanName: "' + clanName + '")\n')
    print (gamerString)
    dataStorageFile.write(gamerString)

if __name__ == '__main__':
    main()

Когда я проверяю логи, а также файл, в котором сохранен выводдо, первый вывод печатается / сохраняется в одну строку, что именно то, что я хочу.Однако все последующие строки обрываются в финале '")\n'.Я получаю следующее:

let r2 = player(gamerID: "TE2", userPhoneNumber: "3456106340", _geoloc: makeCoordinates(points: (51.563601,  -0.118769)), allocatedTimes: makeallocatedTimes(mon:("0700","2300"),tue:("0700","2300"),wed:("0700","2300"),thu:("0700","2300"),fri:("0700","2300"),sat:("0700","2300"),sun:("0700","2300")), clanName: "Tesco
")

Обратите внимание, что ") находится на отдельной строке.Это не то, что я хочу, я хочу это так:

let r2 = player(gamerID: "TE2", userPhoneNumber: "3456106340", _geoloc: makeCoordinates(points: (51.563601,  -0.118769)), allocatedTimes: makeallocatedTimes(mon:("0700","2300"),tue:("0700","2300"),wed:("0700","2300"),thu:("0700","2300"),fri:("0700","2300"),sat:("0700","2300"),sun:("0700","2300")), clanName: "Tesco")

Я попытался распечатать очень длинные строки, и все они распечатываются / сохраняются в одну строку для каждого отпечатка, но по какой-то причине, когда яраспечатать / сохранить вывод игры, я получаю ") в отдельной строке, и я не уверен, почему?Спасибо!

1 Ответ

0 голосов
/ 05 февраля 2019

Python не удаляет символы новой строки в конце строки при чтении файла.Это означает, что файл с содержимым, подобным

row1,value1
row2,value2

, будет читаться как две строки, содержащие "row1,value1\n" и " row2,value2\n".

Создать что-то вроде modifiedLine = line.strip('\n') как часть очистки / предварительной обработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...