[解決済み】PythonでCSVを作成すると、Windowsで余計なキャリッジリターンが追加される。
2022-03-30 17:40:35
質問
import csv
with open('test.csv', 'w') as outfile:
writer = csv.writer(outfile, delimiter=',', quoting=csv.QUOTE_MINIMAL)
writer.writerow(['hi', 'dude'])
writer.writerow(['hi2', 'dude2'])
上記のコードでファイルが生成されます。
test.csv
を追加したものです。
\r
のように、各行で
hi,dude\r\r\nhi2,dude2\r\r\n
の代わりに、期待される
hi,dude\r\nhi2,dude2\r\n
なぜこのようなことが起こるのか、あるいは実際に望ましい動作なのか?
解決方法は?
Python 3:
公式
csv
ドキュメント
推奨
open
というファイルを作成します。
newline=''
をすべてのプラットフォームで
ユニバーサルな改行変換を無効にする
:
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
...
CSVライターは、各行の末尾に
lineterminator
方言の
である。
'\r\n'
は、デフォルトの
excel
というのは、すべてのプラットフォームで
RFC 4180
を推奨しています。
Python 2:
Windows では、ファイルは常にバイナリモードで開いてください (
"rb"
または
"wb"
) に渡す前に
csv.reader
または
csv.writer
.
テキストファイルですが、CSV は
バイナリ
という形式があり、関係するライブラリは
\r\n
でレコードを区切ります。そのセパレータがテキストモードで書かれている場合、Pythonランタイムはそのセパレータを
\n
で
\r\n
であり、それゆえ
\r\r\n
で観測された。
参照 前回の回答 .
関連
-
Pythonコンテナのための組み込み汎用関数操作
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] GitでCRLF(キャリッジリターン、ラインフィード)を処理するための戦略とは?
-
[解決済み] PandasとPythonでCSVファイルを読み込むとUnicodeDecodeErrorが発生する。
-
[解決済み】Pythonで辞書のキーをリストとして返すには?
-
[解決済み】Pythonで作成したCSVファイルの行間に空白行がある。
最新
-
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関数の高度な応用を解説
-
python string splicing.join()とsplitting.split()の説明
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonによるjieba分割ライブラリ
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
Pythonショートビデオクローラーチュートリアル
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。