[解決済み] os.lineepは何のためにあるのですか?
質問
Pythonのosモジュールには、プラットフォーム固有の行分離文字列の値が含まれていますが、ドキュメントには、ファイルへの書き込み時にそれを使用しないように明示的に書かれています。
テキストモードで開かれたファイルを書き込む場合(デフォルト)、行の終端として os.linesep を使用しないでください。
過去の質問 は、なぜあなたが しないほうがいい をこの文脈で使うことはできますが、では、どのような文脈で役に立つのでしょうか?どんなときに、何のために、ラインセパレーターを使うべきなのでしょうか?
どのように解決するのですか?
<ブロッククオートドキュメントによると、ファイルへの書き込み時に使用しないように明示されています。
これは正確ではありません。 テキスト モードを使用します。
は、その
os.linesep
は、テキストファイルの行を繰り返し処理する場合に使用します。内部スキャナは
os.linesep
という文字列が表示され、それを1つの" \n"に置き換えます。
例として、Windowsのデリミタである" \rn" で区切られた3行からなるバイナリファイルを作成する場合について説明します。
import io
filename = "text.txt"
content = b'line1\r\nline2\r\nline3'
with io.open(filename, mode="wb") as fd:
fd.write(content)
バイナリーファイルの中身は
with io.open(filename, mode="rb") as fd:
for line in fd:
print(repr(line))
注:バイナリファイルとして読み込むため、"rb"モードを使用しました。
得ることができます。
b'line1\r\n'
b'line2\r\n'
b'line3'
このようにテキストモードでファイルの中身を読むと。
with io.open(filename, mode="r", encoding="ascii") as fd:
for line in fd:
print(repr(line))
得ることができる。
'line1\n'
'line2\n'
'line3'
デリミタが"Ⅻに置き換わります。
は
os.linesep
Windowsでは" \n" 、POSIXでは" \n" などのシステムデフォルトの行区切りに変換されます。
を使用すると
io.open
を使えば、行の区切りを強制的に好きなものにすることができます。
例:Windowsのテキストファイルの書き方。
with io.open(filename, mode="w", encoding="ascii", newline="\r\n") as fd:
fd.write("one\ntwo\nthree\n")
このファイルをテキストモードで読むと、こんな感じ。
with io.open(filename, mode="rb") as fd:
content = fd.read()
print(repr(content))
得ることができます。
b'one\r\ntwo\r\nthree\r\n'
関連
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】__str__と__repr__の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
python implement mysql add delete check change サンプルコード
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Python 入出力と高次代入の基礎知識
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み] Python 3.6でf-stringで改行を使用して出力をフォーマットする方法は?