30/09/2018, 18:03
Cách in kết quả của chương trình đếm số từ trong một file vào một file khác?
Mọi người cho em hỏi, em có 1 bài tập như thế này:
Để user nhập một file bất kì vao( vd:a.txt), sau đó chương trình sẽ đếm số chữ ( vd: hello I I am–>hello:1, i:2,am:1) và tự tạo và ghi ra file mới ( vd:b.txt) những thứ đếm được.
Em đã viết được cái function để đếm số chữ nhưng khi khi nhập 1 file vào open(‘a.txt’,‘r’), nhưng chương trình chỉ tạo ra file b.txt mà không có gì trong đó.
Đây là code hiện tại
def count_word(file):
#open an input and output file
infile = open(file,"r")
outfile = open("frequency.txt","w")
#dem tu trong string
split_string = file.split()
string_dict = {}
#first populate the dictionary with the keys being each word in the string, all having zero for their values.
for word in split_string:
string_dict[word] = 0
#Then cycle through the split string again and if the word is one of the keys in the dictionary add 1 each time.
for word in split_string:
if word in string_dict.keys():
string_dict[word]=string_dict[word]+1
return string_dict
#close the input and output file
outfile.close()
infile.close()
#Main Program
name_infile = raw_input("Enter the name of a text file: ")
count_word(name_infile)
print "frequency.txt was created successfully"
Ai có cach giải quyết giúp dùm e với.
Bài liên quan
Bạn post code lên đi cho mọi người giúp.
Code này bạn đâu có sử dụng
outfile
đâu, bạn chỉopen
rồiclose
thì sao mà ghi được? Với cả code này return trước khi close file nữa.Nhớ đọc bài này để biết cách post code: Cách post Code dùng Markdown trong Category Programming
vậy bây giờ phải sửa như thế nào vậy, phải them hay bớt gì mà vẫn giữ lại cái def count_word?
Bạn copy code này ở đâu thế? Đạt thấy hình như bạn không biết Python, nhưng code thì viết rất tốt, có vẻ là code copied ở đâu đấy.
Đây là chương trình đã sửa.
Đạt có file
input
, nội dung như sauChạy chương trình
Kiểm tra kết quả
à tại cái phần file cua python e chỉ mới học nên chẳng biết làm còn cái def thì làm trước đó rồi, nên khi gom 2 cái vào nó khong chạy được cũng chẳng hiểu. thanks
Code hàm
count_word
của bạn trả về giá trịstring_dict
là 1 dictionary. Khi bạn gọi nó ở dòngcount_word(name_infile)
thì kết quả dòng đó trả về làstring_dict
thôi chứ nó không ghi vào file (return
mà). @ltd sửa lại dòng đó để nó ghi vào file là được.Phần chương trình chính, mình thấy hay để trong 1 câu lệnh
if
như sau:Mục đích là để khi bạn import file này từ file khác thì nó không chạy đoạn này. Nó chỉ chạy khi bạn gọi trực tiếp file này.
VD bạn lưu code này là
code1.py
thì:python code1.py
ở cmd hoặc terminal, chương trình sẽ chạy.count_word
ở file.py
khác thì dùng: