382
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
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
print >>f, "text to write" # Python 2.x
print["text to write", file=f] # Python 3.x
9. Cách dễ nhất để làm điều này trong Python là gì?
Alex
5.9209 Huy hiệu vàng49 Huy hiệu bạc99 Huy hiệu Đồng9 gold badges49 silver badges99 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.44916 Huy hiệu vàng63 Huy hiệu bạc93 Huy hiệu Đồng16 gold badges63 silver badges93 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,8K8 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
912K178 Huy hiệu vàng1131 Huy hiệu bạc1267 Huy hiệu đồng178 gold badges1131 silver badges1267 bronze badges
3
Bạn có thể dùng:
file.write[your_string + '\n']
TOT ZAM
7.9889 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.8251 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']
0 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
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
CityNormancitynormancitynorman
4.4902 Huy hiệu vàng34 Huy hiệu bạc38 Huy hiệu Đồng2 gold badges34 silver badges38 bronze badges
0
f.write["text to write\n"]
0hoặ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
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"]
2Usage:
f.write["text to write\n"]
3Bạn cũng có thể sử dụng
file.write[your_string + '\n']
1 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']
2 là file.write[your_string + '\n']
3 với các kwarg được xác định trước.f.write["text to write\n"]
4Notes:
- Tài liệu in
4 - //pyformat.info/, PEP -3101file.write[your_string + '\n']
- '\ t' - ký tự tab
5 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 & ** kwargsfile.write[your_string + '\n']
Đã trả lời ngày 16 tháng 4 năm 2019 lúc 20:58Apr 16, 2019 at 20:58
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']
6 không được hỗ trợ trong file.write[your_string + '\n']
7 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']
8.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
22K15 Huy hiệu vàng133 Huy hiệu bạc154 Huy hiệu đồng15 gold badges133 silver badges154 bronze badges
Tôi thực sự không muốn gõ
file.write[your_string + '\n']
9 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ìnhf.write["text to write\n"]
6Và ở đâ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
Joshjoshjosh
3641 Huy hiệu bạc16 Huy hiệu đồng1 silver badge16 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']
0 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']
1 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']
2 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
Nwoye Cidnwoye CidNwoye CID
6887 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
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
file.write[your_string + '\n']
9 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
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
4Chí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
5Và 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
6Nó 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
McKenzmmckenzmmckenzm
1.2181 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']
4Đã trả lời ngày 15 tháng 3 lúc 12:48Mar 15 at 12:48
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
8Thêm về định dạng chuỗi.
Đã trả lời ngày 1 tháng 6 lúc 23:48Jun 1 at 23:48