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 :smiley:

c:\hocpython\hardway>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:\hocpython\hardway\ex15_example.txt”)

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

1 Like

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 :smiley:

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()

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 :smiley:
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.

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

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

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