よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

pythonでテキストファイルの書き出す際のメモ

目次

  1. Windows10上でメモ帳を使い、テキストファイルを書き出すpythonスクリプトを作成。
  2. Windowsコマンドプロンプトを起動し、pythonスクリプトの実行。
  3. 注意点



1 スクリプト作成
メモ帳を立ち上げたらそこにpythonスクリプトのコードを書きます。


ソースコード

# ファイル名「カキコ.txt」に「は~ひふ~へほ~」と書き出すプログラム

# 上書きモード "w" で書き出し。 
# "w"を"a"に変えれば追記モードになります。実行する度に以前の書込みの後ろに付け加えられる。
with open("カキコ.txt" , "w") as f:
	f.write("は~ひふ~へほ~")

pythonスクリプト名 : OpenWriteText.py
pythonスクリプト保存先 : デスクトップ
pythonスクリプト文字コードANSI
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」

名前を付けて保存pythonスクリプト名「OpenWriteText.py」にし、ファイルの種類を全てのファイルデスクトップに保存しました。
文字コードはデフォルトのANSIのままにしてあります。



2 コマンドプロンプトから実行
Windowsボタン + R」→ 「cmd」と入力するとコマンドプロンプトが起動します。

f:id:chayarokurokuro:20190512012917p:plain
コマンドプロンプト起動

「C:\Users\パソコンのユーザー名>」がいまカレントワーキングディレクトリになっています。マイホーム。夢のマイホーム。


今作ったスクリプトはデスクトップに保存したので、そこへ移動します。
「ユーザー名>」の後に cd desktopと入力。cdはチェンジ・ディレクトリのコマンド。

C:\Users\パソコンのユーザー名>cd desktop


コマンドプロンプトの表示は次のように変わります。

C:\Users\パソコンのユーザー名\Desktop>


ここでファイル名を指定してpythonを実行します。

C:\Users\パソコンのユーザー名\Desktop>python OpenWriteText.py

python」の後にスペースを空けて、続けて「ファイル名」を入力すればOK。




実行結果がコマンドプロンプトに出力されます。

File "OpenWriteText.py", line 1
SyntaxError: Non-UTF-8 code starting with '\x83' in file OpenWriteText.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

SyntaxError: Non-UTF-8 codeなんちゃらかんちゃらとエラーが出ました。
pythonスクリプト名 : OpenWriteText.py
pythonスクリプト保存先 : デスクトップ
pythonスクリプト文字コードANSI
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
python実行場所 : pythonスクリプト保存先(デスクトップ)
・実行結果 エラー SyntaxError: Non-UTF-8 code starting with '\x83' in file


保存する際に「文字コード」をANSIにしたのでエラーが出ました。



試しにpythonスクリプトの先頭に「# -*-coding : utf-8-*-」を書くと今度は

SyntaxError: (unicode error) 'utf-8' codec can't decode

pythonスクリプト名 : OpenWriteText.py
pythonスクリプト保存先 : デスクトップ
pythonスクリプト文字コードANSI
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
スクリプトに「# -*-coding : utf-8-*-」を追加
python実行場所 : pythonスクリプト保存先(デスクトップ)
・実行結果 エラー SyntaxError: (unicode error) 'utf-8' codec can't decode

デコード出来ませんなんちゃらかんちゃらとエラーを吐きます。



今度はメモ帳の保存の際の文字コードの指定を変えてみます。
「名前を付けて保存」から「文字コード」をutf-8に変えて「保存」。上書きで良いか訊かれるので「OK牧場」。


再び実行。今度はどうでしょうか。

C:\Users\パソコンのユーザー名\Desktop>python OpenWriteText.py

pythonスクリプト名 : OpenWriteText.py
pythonスクリプト保存先 : デスクトップ
pythonスクリプト文字コードutf-8
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
python実行場所 : pythonスクリプト保存先(デスクトップ)
※一度入力したコマンドはメモリーに保存されています。
※カーソルの「↑」「↓」を押してみると候補がでます。何度も入力せずに済みます。


実行後のコマンドプロンプトの様子は

C:\Users\パソコンのユーザー名\Desktop>

今度はエラーを吐きませんでした。
pythonスクリプト名 : OpenWriteText.py
pythonスクリプト保存先 : デスクトップ
pythonスクリプト文字コードutf-8
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
python実行場所 : C:\Users\パソコンのユーザー名
・実行結果 成功



カキコ.txtなるテキストファイルがどこかに作られ、その中には「は~ひふ~へほ~」と書いてあるはず・・・
バイキンマンはどこだ!


はい、いました。わたし探しました。すぐ見つかりました。デスクトップにいました。凄いですね~。面白いですね~。
ではさいなら、さいなら、さいなら。




え、さて、

今回スクリプトファイルを保存したデスクトップ以外でpythonを試してみます。

C:\Users\パソコンのユーザー名>python OpenWriteText.py
python: can't open file 'OpenWriteText.py': [Errno 2] No such file or directory

ユーザーのホームディレクトリで実行してみましたら、「そんなファイルやディレクトリはねぇ!」とエラーがでました。
pythonスクリプト名 : OpenWriteText.py
pythonスクリプト保存先 : デスクトップ
pythonスクリプト文字コードutf-8
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
python実行場所 : C:\Users\パソコンのユーザー名
・実行結果 エラー python: can't open file 'OpenWriteText.py': [Errno 2] No such file or directory


ならば、ファイル保存場所のパスをファイル名の前に含めて、別のディレクトリかpythonを実行してみます。

C:\Users\パソコンのユーザー名>python C:\Users\パソコンのユーザー名\Desktop\OpenWriteText.py

pythonスクリプト名 : C:\Users\パソコンのユーザー名\Desktop\OpenWriteText.py (パスを付けた)
pythonスクリプト保存先 : デスクトップ
pythonスクリプト文字コードutf-8
・出力するテキストファイル名 : カキコ.txt
・テキスト内容 : 上書きモードで「は~ひふ~へほ~」
python実行場所 : C:\Users\パソコンのユーザー名
・実行結果 成功 テキスト出力場所 : C:\Users\パソコンのユーザー名



3 まとめ 注意点
pythonでファイルを書き出す際に気を付けたいのは

スクリプトを保存する時の文字コード
スクリプトの保存場所と実行場所
スクリプトのファイルパスを指定するか否か
・書き出すファイルの出力保存先

スクリプトをコーディングするエディタの種類やosモジュール等をインポートすることで
コンピュータの環境が変わってもそれらを気にすることなく実行できるようになるようですが、
また別の機会に書きたいとおもいます。


ばいばいきーん