Hướng dẫn write multiple lines to file python - viết nhiều dòng vào tệp python

Tôi có mã sau:

line1 = raw_input("line 1: ")
line2 = raw_input("line 2: ")
line3 = raw_input("line 3: ")
print "I'm going to write these to the file."
target.write(line1)
target.write("\n")
target.write(line2)
target.write("\n")
target.write(line3)
target.write("\n")

Ở đây mục tiêu là đối tượng tệp và line1, line2, line3 là các đầu vào của người dùng. Tôi chỉ muốn sử dụng một lệnh Target.write () để viết tập lệnh này. Tôi đã thử sử dụng những điều sau:

target.write("%s \n %s \n %s \n") % (line1, line2, line3)

Nhưng điều đó không đặt một chuỗi bên trong một chuỗi khác nhưng nếu tôi sử dụng như sau:

target.write(%s "\n" %s "\n" %s "\n") % (line1, line2, line3)

Trình thông dịch Python (tôi đang sử dụng Microsoft PowerShell) cho biết cú pháp không hợp lệ. Làm thế nào tôi có thể làm điều đó?

hỏi ngày 9 tháng 1 năm 2014 lúc 12:13Jan 9, 2014 at 12:13

Hướng dẫn write multiple lines to file python - viết nhiều dòng vào tệp python

kartikeykant18kartikeykant18kartikeykant18

1.6855 huy hiệu vàng26 Huy hiệu bạc39 Huy hiệu đồng5 gold badges26 silver badges39 bronze badges

Bạn đang nhầm lẫn niềng răng. Làm như thế này:

target.write("%s \n %s \n %s \n" % (line1, line2, line3))

Hoặc thậm chí tốt hơn, sử dụng

target.write("%s \n %s \n %s \n") % (line1, line2, line3)
3:

target.writelines([line1, line2, line3])

Đã trả lời ngày 9 tháng 1 năm 2014 lúc 12:16Jan 9, 2014 at 12:16

9

Một cách khác mà, ít nhất là với tôi, có vẻ trực quan hơn:

target.write('''line 1
line 2
line 3''')

Đã trả lời ngày 8 tháng 4 năm 2020 lúc 0:25Apr 8, 2020 at 0:25

Hướng dẫn write multiple lines to file python - viết nhiều dòng vào tệp python

JCKLOPPJCKLOPPjcklopp

4415 Huy hiệu bạc9 Huy hiệu đồng5 silver badges9 bronze badges

with open('target.txt','w') as out:
    line1 = raw_input("line 1: ")
    line2 = raw_input("line 2: ")
    line3 = raw_input("line 3: ")
    print("I'm going to write these to the file.")
    out.write('{}\n{}\n{}\n'.format(line1,line2,line3))

Đã trả lời ngày 9 tháng 1 năm 2014 lúc 12:20Jan 9, 2014 at 12:20

Burhan Khalidburhan KhalidBurhan Khalid

165K18 Huy hiệu vàng238 Huy hiệu bạc276 Huy hiệu Đồng18 gold badges238 silver badges276 bronze badges

Tôi nhận thấy rằng đây là một cuộc tập trận nghiên cứu từ cuốn sách "Tìm hiểu Python một cách khó khăn". Mặc dù bạn đã hỏi câu hỏi này 3 năm trước, tôi đã đăng bài này để người dùng mới nói rằng đừng hỏi trực tiếp trong stackoverflow. Ít nhất hãy đọc tài liệu trước khi hỏi.

Và theo như câu hỏi có liên quan, sử dụng

target.write("%s \n %s \n %s \n") % (line1, line2, line3)
3 là cách dễ nhất.

Sử dụng nó như thế này:

target.writelines([line1, line2, line3])

Và như Alkid đã nói, bạn đã làm hỏng giá đỡ, chỉ cần làm theo những gì anh ấy nói.

Đã trả lời ngày 20 tháng 11 năm 2017 lúc 16:47Nov 20, 2017 at 16:47

1

Nó cũng có thể được thực hiện như thế này:

target.write(line1 + "\n" + line2 + "\n" + line3 + "\n")

Hướng dẫn write multiple lines to file python - viết nhiều dòng vào tệp python

Moshe Slavin

5,0075 Huy hiệu vàng23 Huy hiệu bạc37 Huy hiệu Đồng5 gold badges23 silver badges37 bronze badges

Đã trả lời ngày 23 tháng 12 năm 2018 lúc 8:27Dec 23, 2018 at 8:27

Giả sử bạn không muốn có một khoảng trống ở mỗi dòng mới sử dụng:

print("I'm going to write these to the file")
target.write("%s\n%s\n%s\n" % (line1, line2, line3))

Điều này hoạt động cho phiên bản 3.6

Đã trả lời ngày 29 tháng 3 năm 2017 lúc 5:58Mar 29, 2017 at 5:58

Điều này cũng hoạt động:

target.write("%s \n %s \n %s \n") % (line1, line2, line3)
0

Hướng dẫn write multiple lines to file python - viết nhiều dòng vào tệp python

Machavity ♦

30.2k26 Huy hiệu vàng88 Huy hiệu bạc99 Huy hiệu đồng26 gold badges88 silver badges99 bronze badges

Đã trả lời ngày 21 tháng 4 năm 2019 lúc 17:10Apr 21, 2019 at 17:10

Jaydeemourgjaydeemourgjaydeemourg

1331 Huy hiệu vàng1 Huy hiệu bạc8 Huy hiệu đồng1 gold badge1 silver badge8 bronze badges

Bạn có thể sử dụng phương pháp

target.write("%s \n %s \n %s \n") % (line1, line2, line3)
5 của chuỗi python.

target.write("%s \n %s \n %s \n") % (line1, line2, line3)
1

Từ https://docs.python.org/3/l Library/stdtypes.html#str.join:

Trả về một chuỗi là sự kết hợp của các chuỗi trong Itable.

Đã trả lời ngày 19 tháng 11 lúc 11:57Nov 19 at 11:57

Nerveless_childNerveless_childNerveless_child

1.3262 Huy hiệu vàng16 Huy hiệu bạc19 Huy hiệu đồng2 gold badges16 silver badges19 bronze badges

target.write("%s \n %s \n %s \n") % (line1, line2, line3)
2