Запись строки в файл на новой строке каждый раз



Я хочу добавлять новую строку в мою строку каждый раз, когда я звоню file.write(). Какой самый простой способ сделать это в Python?

604   7  

7 ответов:

использовать "\n":

file.write("My String\n")

посмотреть руководство по Python для справки.

Вы можете сделать это двумя способами:

f.write("text to write\n")

или, в зависимости от вашей версии Python (2 или 3):

print >>f, "text to write"         # Python 2.x
print("text to write", file=f)     # Python 3.x

вы можете использовать:

file.write(your_string + '\n')

Если вы используете его широко (много письменных строк), вы можете подкласс 'file':

class cfile(file):
    #subclass file to have a more convienient use of writeline
    def __init__(self, name, mode = 'r'):
        self = file.__init__(self, name, mode)

    def wl(self, string):
        self.writelines(string + '\n')
        return None

теперь он предлагает дополнительную функцию wl, которая делает то, что вы хотите:

fid = cfile('filename.txt', 'w')
fid.wl('appends newline charachter')
fid.wl('is written on a new line')
fid.close()

может быть, мне не хватает чего-то вроде разных символов новой строки (\n, \r, ...) или что последняя строка также заканчивается новой строкой, но это работает для меня.

file_path = "/path/to/yourfile.txt"
with open(file_path, 'a') as file:
    file.write("This will be added to the next line\n")

или

log_file = open('log.txt', 'a')
log_file.write("This will be added to the next line\n")

Это решение, которое я придумал, пытаясь решить эту проблему для себя, чтобы систематически производить \N в качестве разделителей. Он пишет, используя список строк, где каждая строка является одной строкой файла, однако кажется, что он может работать и для вас. (Python 3.+)

#Takes a list of strings and prints it to a file.
def writeFile(file, strList):
    line = 0
    lines = []
    while line < len(strList):
        lines.append(cheekyNew(line) + strList[line])
        line += 1
    file = open(file, "w")
    file.writelines(lines)
    file.close()

#Returns "\n" if the int entered isn't zero, otherwise "".
def cheekyNew(line):
    if line != 0:
        return "\n"
    return ""

просто к сведению, file Не поддерживается в Python 3 и был удален. Вы можете сделать то же самое с open встроенная функция.

f = open('test.txt', 'w')
f.write('test\n')

Comments

    Ничего не найдено.