30/09/2018, 17:39

Hôi về chạy lệnh open trong Python shell

@ltd
trong bài 15 của learnpythonhardway, phần study drill có bài tập số 6 như sau

Start python to start the Python shell, and use open from the prompt just like in this program. Notice how you can open files and run read on them from within python?

Tôi đã thử các lệnh open va read trong python shell nhưng không được, lỗi như sau

c:hocpythonhardway>python
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on wi
n32
Type “help”, “copyright”, “credits” or “license” for more information.

read
Traceback (most recent call last):
File “”, line 1, in
NameError: name ‘read’ is not defined

open()
Traceback (most recent call last):
File “”, line 1, in
TypeError: Required argument ‘name’ (pos 1) not found

read()
Traceback (most recent call last):
File “”, line 1, in
NameError: name ‘read’ is not defined

P/s : Tôi đã thử đưa tham số vào open vẫn không được : open(“C:hocpythonhardwayex15_example.txt”)

Xin giải thích giúp mình. Tks !

hong duc viết 19:46 ngày 30/09/2018

cái này trước tiên phải import os
rùi sử dụng os.getcwd() để biết mình đang ở đâu thường là trong C:\python34 nếu là cài vào trong ổ C:
rùi sau đó mới dùng os.chdir(“C:\”) ra ổ C: rùi thì mới dùng cái tham số C:\hocpython\hardway\ex15_example.txt cho open được vì lúc đầu đâu có đang ở trong ổ C: nên đâu xài được
với lại khi dùng open phải như thế này open(path) as data rùi sau đó dùng data.readline() để đọc file mới được
theo mình học là vậy

htl@PyMI.vn viết 19:47 ngày 30/09/2018

Không cần import os vẫn open được nhé.
Đoạn lỗi của bạn @mrche là lỗi thiếu tham số khi truyền vào hàm open()

P/s : Tôi đã thử đưa tham số vào open vẫn không được : open(“C:\hocpython\hardway\ex15_example.txt”)

Bạn có thể post thông báo của python shell lên đây để mọi người biết nó không được như thế nào. Đó là cách để mọi người giúp bạn, đừng chỉ nói là không được
Mình chạy đoạn đó thì vẫn mở được. Tuy nhiên lưu ý bạn nên gán kết quả của hàm open cho 1 biến để sau này sử dụng. VD:

# f = open("Đường dẫn tới file")
>>> f = open('D:\HTL\Desktop\links.txt')
>>> f
<_io.TextIOWrapper name='D:\\HTL\\Desktop\\links.txt' mode='r' encoding='cp1252'>

Nếu chỉ gõ open("Đường dẫn") thì kết quả trả về sẽ nằm đâu đó trong bộ nhớ mà bạn không truy cập được.

Lưu ý khi chỉ truyền 1 biến vào open() thì mode mặc định là 'r' như trên, nếu đường dẫn không tồn tại thì sẽ xảy ra lỗi.

Thu Nguyen viết 19:55 ngày 30/09/2018

Traceback (most recent call last): File “”, line 1, in TypeError: Required argument ‘name’ (pos 1) not found

lỗi python thông báo đó bạn

htl@PyMI.vn viết 19:47 ngày 30/09/2018

Đó là lỗi khi chạy lệnh open() ko có tham số

Bài liên quan
0