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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

573閲覧

Python: 開発するプロジェクトをWindowsアプリケーションを選択した場合 print文が認められない。代替手立てを教えて頂きたい

saya24

総合スコア247

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/05/03 05:28

編集2020/05/03 05:35

本件はこちらの掲載から派生した話題です。

従来まで試行していたモジュールは Windowsアプリケーションの位置づけではなかったのですが、試しに以下のとおりWindowsアプリケーション=GUI(?)に変更したうえ コード実行(自分の開発環境はVisualStudio2017であり デバッグ実行を指します)したところ 表題のとおり、print文の部分でエラー「Message='NoneType' object has no attribute 'write'」となってしまいました。
GUIへ変更

前回の記事で頂いたご見解を参考に、「コンソール出力」という機能で 出力ウィンドウや GUI実行時の裏に現れるコンソールにコメント行が現れるかな??と仮説をたて
・sysのimportをモジュールの頭に追加
・コード上のprint文の部分を sys.stdout.write() に変更しました

しかし、sys.stdout.write() の部分で 同じエラーを招いてしまっています。
GUIを選択した場合、printの代替え措置は何になるのでしょうか。現時点で まだフォームが配置されていないプロジェクトが故のことなのでしょうか?

現在のコードは 以下のとおりです。

Python

1import sys 2import requests 3from bs4 import BeautifulSoup 4 5##########print("Hello, Visual Studio") I changed this below! ########## 6sys.stdout.write("Hello, Visual Studio") 7 8# WebサイトのURLを指定 9url = "https://news.google.com/?hl=ja&gl=JP&ceid=JP:ja" 10 11# Requestsを利用してWebページを取得する 12r = requests.get(url) 13 14# BeautifulSoupを利用してWebページを解析する 15soup = BeautifulSoup(r.text, 'html.parser') 16 17# soup.find_allを利用して、ヘッドラインのタイトルを取得する 18elems = soup.find_all("a", class_="DY5T1d") 19for e in elems: 20 ##########print(e.getText()) I changed this below! ########## 21 sys.stdout.write(e.getText())

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

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

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

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

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

guest

回答2

0

ベストアンサー

Windowsアプリケーションというのは、「コンソールを持たないアプリケーション」という意味なので、sys.stdout等は使えません。

出力するなら、ファイルに書くか、GUIウィンドウを作ってそこに表示します。
デバッグ目的なら、ファイルに書くのでしょうか。

投稿2020/05/03 06:43

otn

総合スコア85901

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

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

saya24

2020/05/03 07:16

otnさん、御回答ありがとうございます。 GUI でもバックグラウンドでDOS窓みたいな画面が現れるので、そちらにコメントが現れる方法があるかなぁ、なんて思いましたが、ない、ということですね。 仰られるとおり開発過程で、確認したい出力がある場合 今後重宝すると思い確認させて頂きました。 https://genchan.net/it/programming/python/4183/
otn

2020/05/03 07:25

ちょっとわかりません。開発ツールの機能なんですかね? 少なくとも完成したWindowsアプリならコンソールウィンドウは出ないです。 あるいは、Windowsアプリからコンソールアプリを起動するとコンソールが出ます。例えば`ping.exe`を起動したりするケース。
saya24

2020/05/03 07:38

分かりました、TkInterの特性?? なのかよく分かりませんが、掲載記事からして自分も今後進めていく上でバックグラウンドにDOS窓が現れそうに思いましたもので。 一先ずこのままGUI開発へ進んでいきます。 有難うございました。
guest

0

GUIの場合は、なにかフォームを作ってそこに表示させるということになります

投稿2020/05/03 06:21

y_waiwai

総合スコア88042

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

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

saya24

2020/05/03 07:18

ご見解ありがとうございます。 適時開発過程での確認に、出力ウィンドウに現せるコマンドがあれば.....と思いましたが ない ということですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問