Nhờ các bạn chèn giúp 1 dòng code để sắp xếp các dòng theo chữ cái

Chào mọi người,

Mình đang có bài tập như sau:

  1. Đọc dữ liệu từ tệp txt
  2. sắp xếp các dòng trong tệp txt theo thứ tự chữ cái rồi ghi vào tệp txt khác

Mình đã làm được đọc file, ghi file. Nhưng cái đoạn sắp xếp các dòng theo thứ tự chữ cái thì không biết nhét vào đâu vì mình nhét vào thì tự dưng không ghi vào file output được.

Các bạn giúp mình nhé.

Cảm ơn mọi người

Mình gửi mọi người hình ảnh đoạn code của mình và nội dung file txt

code:

print ('program started')

inputfile = open("unsorted_fruits.txt", "r")
outputfile = open("sorted_fruits.txt","w")

unsort_fruits = inputfile.readlines()

for fruit in unsort_fruits:
    outputfile.write(fruit)
    print (fruit)


inputfile.close()
outputfile.close()
print ('done')

Tệp:

Cảm ơn mọi người đã đọc tin

Đưa dữ liệu vào list sau đó dùng hàm sort()

unsort_fruits = inputfile.read().split("\n")
unsort_fruits.sort()

for fruit in unsort_fruits:
    outputfile.write(fruit + "\n")
    print(fruit)
2 Likes

Bạn ơi, hàm chạy okie nhưng mà file ra thì trống không bạn ạ :frowning:

Mình không rành Python lắm, nên mình sẽ làm thế này.

with open('unsorted_fruits.txt') as in_file:
    all_lines = in_file.readlines()
    lines = [line for line in all_lines if line.lstrip()] # loại bỏ các dòng trống

with open('sorted_fruits.txt', 'w') as out_file:
    out_file.write(''.join(sorted(lines)))
2 Likes

Cảm ơn bạn nhé nhưng yêu cầu của đề bài là mình phải sử dụng hàm for hoặc while bạn ah

Mình ko hiểu sao mình chèn code sắp xếp là file output ko có dữ liệu luôn…

Thử tắt file rồi mở lại xem. Với đoạn code trên của mình. Mình có thể mở rộng nó bằng các vòng lặp cụ thể như sau.

with open('unsorted_fruits.txt') as in_file:
    all_lines = in_file.readlines()
    lines = []
    for line in all_lines:
        if line.lstrip():
            lines.append(line)

with open('sorted_fruits.txt', 'w') as out_file:
    for line in sorted(lines):
        out_file.write(line)
2 Likes

Cho mình hỏi chút: Đây là bạn xài python 2. hay 3. vậy? MÌnh đang xài python 3.

Đoạn đó Python 2.X hay 3.X đều chạy ổn

2 Likes

Oh yeah…
Chạy được rồi bạn ah.

Cảm ơn bạn nhiều nhiều nhé

Cảm ơn bạn thêm lần nữa hihi

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?