質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

1767閲覧

[Python] withを使用したファイルopen, closeでSyntaxError

pigton

総合スコア47

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/09/05 04:49

前提・実現したいこと

Python:3.6.4

現在、公式ドキュメントの7.2「ファイルを読み書きする」を学習しています。
公式:https://docs.python.jp/3/tutorial/inputoutput.html

with文のFinallyにあたるところで、ファイルを閉じているのですが、SyntaxErrorになります。
どなたか、解決法のご教示よろしくお願い致します。

該当のソースコードと発生しているエラーメッセージ

Python

1>>> with open('textfile.txt') as f: 2... read_data = f.read() 3... f.closed 4 File "<stdin>", line 3 5 f.closed 6 ^ 7SyntaxError: invalid syntax

試したこと①

以下の構文で、textfile.txtがあることを確認→OK

Python

1>>> os.listdir('./')

試したこと②

以下の構文でtextfile.txtを読み込み、出力できることを確認→OK

Python

1>>> with open('textfile.txt') as f: 2... print(f.read()) 3... 4gggg # テキストファイルに書いた文字

試したこと③

以下の構文でtextfile.txtを読み込み、クローズした結果が出力できることを確認→NG

Python

1>>> with open('textfile.txt') as f: 2... f.read() 3... print(f.closed) 4 File "<stdin>", line 3 5 print(f.closed) 6 ^ 7SyntaxError: invalid syntax

「f」が「f.closed」から見えていないということでしょうか?
解決法がわかりません。ご教示よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

対話モードでの実行ですね。
途中にエンター挟むといけます。

>>> with open('textfile.txt') as f: ... f.read() ... 'gggg\n' >>> print(f.closed) True

ソースコードをファイルに保存して実行する方法だとこの問題は起きないです。

投稿2018/09/05 04:59

set0gut1

総合スコア2413

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

f.closedがwith節に含まれるとインタプリタが誤認してしまっています。
一回多く改行を打ってみてください。

Python

1>>> with open('textfile.txt') as f: 2... read_data = f.read() 3... f.closed 4 File "<stdin>", line 3 5 f.closed 6 ^ 7SyntaxError: invalid syntax 8>>> 9>>> with open('textfile.txt') as f: 10... read_data = f.read() 11... 12>>> f.closed 13True

投稿2018/09/05 04:53

編集2018/09/05 04:54
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pigton

2018/09/05 04:58

回答ありがとうございます。無事に解決できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問