30/09/2018, 18:04
Tạo function để in trong python
Mọi người cho mình hỏi,mình có 1 doan code như thế này. Trong file của user nhập vào có dang ( 'a' :1,'b':2 ...), giờ mình muốn nó in mấy cái đó ra file example.txt thành ( a 1, b 2(xuống dong)). Nhưng cái function ko chạy được, làm sao để fix vậy mn.
def nice_printing(file):
infile=open(file,'r')
outfile=open('example.txt','w')
items=file.items()
for keys,values in file:
print keys,values
infile.close()
outfile.close()
Bài liên quan
có ai biết cách để fix không?
(
phải ở trước dấu'
.file
là từ khóa của python, bạn đặt tên biến khác đi nhé.read()
hoặcreadlines()
để đọc. Dữ liệu trả về làstring
(vớiread()
) hoặc list (vớireadlines()
). Chứ không phải kiểudict
để bạn sử dụng luôn hàmitems()
như trên.Mình sửa lại khi chay nó báo lỗi str object has no attribute readlines là sao?
infile.readlines mới đúng
Sửa cả vòng lặp for nữa nhé. Vì mỗi dòng là 1 str ko phải dict nên ko có key, value. Bạn có thể dùng
line.split(': ')
xin lỗi mình ghi đề sai, file cua user có dạng là {‘a’:1,‘b’:2} chứ không phải là ngoặc (), vậy thì phải sửa ntn vậy?
Bạn cứ dùng
print
để biết giá trị các biến tại các thời điểm nhé. Đó là 1 cách debug. Rồi làm từng bước một.Và lần sau bạn post đầy đủ code, thông báo lỗi… cho mọi người dễ sửa. Sau khi mọi người sửa, bạn so sánh toàn bộ code được sửa và code của bạn thì sẽ rút kinh nghiệm được. Đừng hỏi ngắt quãng như này.
Tham khảo link: convert str to dict
đây là code sau khi sửa lại, khi nhập file của user có {‘a’:1,‘b’:2} thÌ nó báo lỗi list index out of range là sao vậy?
Thông báo lỗi đầy đủ là như này:
Bạn đã đọc link mình gửi và thử áp dụng nó chưa?
Thôi để mình sửa luôn hộ nhé.
Vì file của bạn chỉ có 1 dòng nên có thể dùng
read()
outfile
chưa dùng nên mình bỏ điNội dung file
text.txt
:Kết quả: