Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

Tôi muốn nối một dòng mới vào chuỗi của mình mỗi khi tôi gọi

file.write(your_string + '\n')
0. Cách dễ nhất để làm điều này trong Python là gì?

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

Alex

6.0909 Huy hiệu vàng49 Huy hiệu bạc102 Huy hiệu đồng9 gold badges49 silver badges102 bronze badges

Khi được hỏi ngày 27 tháng 5 năm 2010 lúc 3:56May 27, 2010 at 3:56

Sử dụng "\ n":

file.write("My String\n")

Xem hướng dẫn Python để tham khảo.

James MV

8.45916 Huy hiệu vàng63 Huy hiệu bạc94 Huy hiệu Đồng16 gold badges63 silver badges94 bronze badges

Đã trả lời ngày 27 tháng 5 năm 2010 lúc 3:59May 27, 2010 at 3:59

Halfanhalfdanhalfdan

32,9k8 Huy hiệu vàng76 Huy hiệu bạc86 Huy hiệu đồng8 gold badges76 silver badges86 bronze badges

4

Bạn có thể làm điều này theo hai cách:

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

Hoặc, tùy thuộc vào phiên bản Python của bạn (2 hoặc 3):

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

Đã trả lời ngày 27 tháng 5 năm 2010 lúc 3:58May 27, 2010 at 3:58

Greg Hewgillgreg HewgillGreg Hewgill

917K178 Huy hiệu vàng1133 Huy hiệu bạc1267 Huy hiệu đồng178 gold badges1133 silver badges1267 bronze badges

3

Bạn có thể dùng:

file.write(your_string + '\n')

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

TOT ZAM

8.0489 Huy hiệu vàng49 Huy hiệu bạc72 Huy hiệu đồng9 gold badges49 silver badges72 bronze badges

Đã trả lời ngày 27 tháng 5 năm 2010 lúc 4:00May 27, 2010 at 4:00

Krishna Kkrishna kKrishna K

1.8451 Huy hiệu vàng14 Huy hiệu bạc11 Huy hiệu đồng1 gold badge14 silver badges11 bronze badges

2

Nếu bạn sử dụng nó rộng rãi (rất nhiều dòng viết), bạn có thể phân lớp 'tệp':

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

Bây giờ nó cung cấp một chức năng bổ sung WL thực hiện những gì bạn muốn:

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

Có lẽ tôi đang thiếu một cái gì đó giống như các ký tự mới khác nhau (\ n, \ r, ...) hoặc dòng cuối cùng cũng bị chấm dứt với một dòng mới, nhưng nó hoạt động với tôi.

Đã trả lời ngày 12 tháng 6 năm 2014 lúc 12:02Jun 12, 2014 at 12:02

Mathausemathausemathause

1.4871 Huy hiệu vàng14 Huy hiệu bạc24 Huy hiệu đồng1 gold badge14 silver badges24 bronze badges

2

Bạn có thể làm:

file.write(your_string + '\n')

Theo đề xuất của một câu trả lời khác, nhưng tại sao sử dụng kết nối chuỗi (chậm, dễ bị lỗi) khi bạn có thể gọi

file.write(your_string + '\n')
1 hai lần:

file.write(your_string)
file.write("\n")

Lưu ý rằng các văn bản được đệm để nó tương tự.

Đã trả lời ngày 3 tháng 3 năm 2019 lúc 14:42Mar 3, 2019 at 14:42

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

Một giải pháp khác ghi từ danh sách sử dụng FSTRING

lines = ['hello','world']
with open('filename.txt', "w") as fhandle:
  for line in lines:
    fhandle.write(f'{line}\n')

Và như một chức năng

def write_list(fname, lines):
    with open(fname, "w") as fhandle:
      for line in lines:
        fhandle.write(f'{line}\n')

write_list('filename.txt', ['hello','world'])

Đã trả lời ngày 12 tháng 1 năm 2020 lúc 21:08Jan 12, 2020 at 21:08

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

CityNormancitynormancitynorman

4.5302 Huy hiệu vàng35 Huy hiệu bạc38 Huy hiệu Đồng2 gold badges35 silver badges38 bronze badges

0

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

hoặc

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

Đã trả lời ngày 24 tháng 1 năm 2018 lúc 14:49Jan 24, 2018 at 14:49

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

1

Trừ khi ghi vào các tập tin nhị phân, sử dụng in. Dưới đây ví dụ tốt để định dạng các tệp CSV:

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

Usage:

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

Bạn cũng có thể sử dụng

file.write(your_string + '\n')
2 như một cách pythonic hơn để tạo ra loại giấy gói này. Trong ví dụ dưới đây,
file.write(your_string + '\n')
3 là
file.write(your_string + '\n')
4 với kwarg được xác định trước.

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

Notes:

  • Tài liệu in
  • file.write(your_string + '\n')
    
    5 - https://pyformat.info/, PEP -3101
  • '\ t' - ký tự tab
  • file.write(your_string + '\n')
    
    6 Trong định nghĩa chức năng - gửi bất kỳ số lượng đối số nào để liệt kê - xem câu hỏi trên *args & ** kwargs

Đã trả lời ngày 16 tháng 4 năm 2019 lúc 20:58Apr 16, 2019 at 20:58

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

MescomescoMesco

1.05712 Huy hiệu bạc17 Huy hiệu đồng12 silver badges17 bronze badges

Chỉ cần một lưu ý,

file.write(your_string + '\n')
7 không được hỗ trợ trong
file.write(your_string + '\n')
8 và đã bị xóa. Bạn có thể làm tương tự với chức năng tích hợp
file.write(your_string + '\n')
9.

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

Đã trả lời ngày 21 tháng 1 năm 2018 lúc 9:00Jan 21, 2018 at 9:00

user1767754user1767754user1767754

22.1K16 Huy hiệu vàng134 Huy hiệu bạc155 Huy hiệu đồng16 gold badges134 silver badges155 bronze badges

Tôi thực sự không muốn gõ

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')
0 mỗi lần và câu trả lời của @Matthause dường như không hiệu quả với tôi, vì vậy tôi đã tạo ra lớp học của riêng mình

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

Và ở đây nó được thực hiện

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

Điều này sẽ hiển thị trong tệp nhật ký là

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

Đã trả lời ngày 2 tháng 12 năm 2020 lúc 21:20Dec 2, 2020 at 21:20

Joshuajoshuajoshua

3642 Huy hiệu bạc17 Huy hiệu đồng2 silver badges17 bronze badges

Ok, đây là một cách an toàn để làm điều đó.

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

Điều này viết 1 đến 10 mỗi số trên một dòng mới.

Đã trả lời ngày 18 tháng 1 năm 2021 lúc 17:25Jan 18, 2021 at 17:25

Sử dụng

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')
1 với
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')
2 trên câu lệnh
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')
3 có vẻ dễ dàng hơn đối với tôi:

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

Đã trả lời ngày 12 tháng 5 năm 2021 lúc 11:31May 12, 2021 at 11:31

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

Nwoye Cidnwoye CidNwoye CID

7187 Huy hiệu bạc8 Huy hiệu đồng7 silver badges8 bronze badges

Đây là giải pháp mà tôi đã đưa ra việc cố gắng giải quyết vấn đề này cho bản thân mình để sản xuất một cách có hệ thống các thiết bị phân cách. Nó viết bằng cách sử dụng một danh sách các chuỗi trong đó mỗi chuỗi là một dòng của tệp, tuy nhiên có vẻ như nó cũng có thể hoạt động với bạn. (Python 3.+)

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

Đã trả lời ngày 11 tháng 3 năm 2018 lúc 22:16Mar 11, 2018 at 22:16

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

Democidistdemocidistdemocidist

1051 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges

1

Bạn có thể trang trí phương thức Viết ở nơi cụ thể mà bạn cần hành vi này:

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

Đã trả lời ngày 23 tháng 3 năm 2021 lúc 14:54Mar 23, 2021 at 14:54

Thông thường bạn sẽ sử dụng

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')
0 nhưng vì bất kỳ lý do gì trong cá nhân Visual Studio Code 2019, nó sẽ không hoạt động. Nhưng bạn có thể sử dụng điều này:

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

Đã trả lời ngày 11 tháng 8 năm 2021 lúc 3:10Aug 11, 2021 at 3:10

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

Nếu viết là một cuộc gọi lại, bạn có thể cần một writeln tùy chỉnh.

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

Chính nó bên trong một dụng cụ mở tùy chỉnh. Xem câu trả lời và phản hồi cho câu hỏi này: Các đối tượng tệp phân lớp (để mở rộng các hoạt động mở và đóng) trong Python 3

(Trình quản lý bối cảnh)

Tôi đã phải đối mặt với điều này khi sử dụng ftplib để "truy xuất các dòng" từ một tệp "dựa trên bản ghi" (fb80):

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

Và kết thúc với một kỷ lục dài không có Newlines, đây có thể là một vấn đề với ftplib, nhưng tối nghĩa.

Vì vậy, điều này đã trở thành:

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

Nó làm công việc. Đây là một trường hợp sử dụng mà một vài người sẽ tìm kiếm.

Tuyên bố đầy đủ (chỉ hai dòng cuối cùng là của tôi):

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

Đã trả lời ngày 8 tháng 11 năm 2021 lúc 0:10Nov 8, 2021 at 0:10

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

McKenzmmckenzmmckenzm

1.2381 Huy hiệu vàng11 Huy hiệu bạc17 Huy hiệu đồng1 gold badge11 silver badges17 bronze badges

Để mạnh mẽ, sử dụng nhiều hệ điều hành:

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')
5

Đã trả lời ngày 15 tháng 3 lúc 12:48Mar 15 at 12:48

Hướng dẫn does python write include newline? - viết python có bao gồm dòng mới không?

Assaf-geAssaf-geAssaf-ge

4264 Huy hiệu bạc6 Huy hiệu Đồng4 silver badges6 bronze badges

Bạn có thể sử dụng định dạng chuỗi kiểu C:

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

Thêm về định dạng chuỗi.

Đã trả lời ngày 1 tháng 6 lúc 23:48Jun 1 at 23:48

Trên thực tế, khi bạn sử dụng cú pháp đa dòng, như vậy:

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

Bạn không cần thêm

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')
0!

Đã trả lời ngày 25 tháng 10 lúc 14:29Oct 25 at 14:29

ERYKERYKEryk

383 Huy hiệu bạc7 Huy hiệu đồng3 silver badges7 bronze badges