Lỗi chương trình python?

from sys import argv
from os.path import exists

scripts, from_file, to_file = argv

open(to_file, 'w').write(open(from_file).read())

mình có đoạn code như thế này để ghi từ file này qua file khác nhưng tại sao lại không chạy ạ, mình học trên mạng thấy ng ta viết code ngắn gọn thế này chạy nhưng mình không chạy ạ. mình dùng python 2.7.9 ạ

  • exists để làm gì?
  • script có khai báo nhưng không dùng!?
  • form_filekhông thấy gán giá trị.
  • argv hay là argv[1]?

Có khai báo nhưng đúng là không để làm gì :grin:

scripts chứ.

from_file chứ. Gán ở đây này.

argv. Vì dòng

tương đương với

scripts = argv[0]
from_file = argv[1]
to_file = argv[2]
2 Likes

Code có báo lỗi gì không bạn?

2 Likes

À, ra thế, vì không hiểu cú pháp python nên hiểu lầm.:grin:

2 posts were merged into an existing topic: Topic chứa các reply được cho là off-topic - version 2

2 Likes

lúc đầu mình viết exits để kiểm tra xem có file đầu ra có tồn tại ko sau đó mình rút gọn code lại quên xoá cái exits

cái này là gán tham số dòng lệnh ấy ạ khi mình chạy mình mới nhập cái form_file , to_file , chứ ko gán ban đầu, code này mình làm y chang như của anh đạt dạy nhau học nhưng anh đó chạy nhưng mình không chạy dc

Non-ASCII character ‘\xef’ in file aaa.py on line 6, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
nó báo lỗi như thế này nè cậu khi mình chạy

nó báo lỗi ở dòng open ạ

from sys import argv
from os.path import exists

scripts, from_file, to_file = argv

print'copying from %s to %s'%(from_file, to_file)

#we could do these two on one line, how?
in_file = open(from_file)
indata= in_file.read()
# long cua file nhap vao
print' the input file is %d bytes long'%len(indata)
# kiem tra su ton tai cua file input , hq la true or false
print' does the output file exist?%r'%exists(to_file)
print'read, hit RETURN to continue, CRTL-C to abort'
raw_input()
#mo file den ra va luu vao
out_file = open(to_file,"w")
out_file.write(indata)

print'alright, all done.'


out_file.close()
in_file.close()
đây là code ban đầu của mình

Bạn phải thêm encoding vào. Chắc file txt của bạn có chữ tiếng Việt.

open(filename, encoding='utf8')...
3 Likes

Hoặc là có kí tự BOM ở đầu (\xef\xbb\xbf = \uFEFF).
Chán nhể, nó đã phát hiện là UTF8 thì tự động chọn mã hóa đó luôn cho xong.

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