01/10/2018, 16:50

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 ạ

Trương Tấn Phát viết 19:00 ngày 01/10/2018
  • 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]?
HK boy viết 19:04 ngày 01/10/2018

exists để làm gì?

from os.path import exists

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

script có khai báo nhưng không dùng!?

scripts chứ.

form_filekhông thấy gán giá trị.

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

scripts, from_file, to_file = argv

argv hay là argv[1]?

argv. Vì dòng

scripts, from_file, to_file = argv

tương đương với

scripts = argv[0]
from_file = argv[1]
to_file = argv[2]
HK boy viết 19:04 ngày 01/10/2018

nhưng mình không chạy ạ

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

Trương Tấn Phát viết 18:52 ngày 01/10/2018

scripts, from_file, to_file = argv

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

*grab popcorn* viết 19:05 ngày 01/10/2018

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

Minh Trí viết 18:55 ngày 01/10/2018

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

Minh Trí viết 19:07 ngày 01/10/2018

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

Minh Trí viết 19:03 ngày 01/10/2018

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

Minh Trí viết 18:51 ngày 01/10/2018

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

Minh Trí viết 18:51 ngày 01/10/2018
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
HK boy viết 19:04 ngày 01/10/2018

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')...
Trương Tấn Phát viết 18:54 ngày 01/10/2018

Chắc file txt của bạn có chữ tiếng Việt.

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.

Bài liên quan
0