- 締切済み
こんにちは、
こんにちは、 私はプログラミング初心者であります。仕事で必要に迫られたこともあり、知人より簡単だから、とPythonを薦められ、学習を始めています。 質問は、既存のテキストファイルの文頭に、数字と文字を付け加えたいと思っているのですが、上手く行きません。 既存のテキスト(data.txt)はこんな感じで、保存されています。 1111.1111 2222.2222 3333.3333 4444.4444 5555.5555 5555.5555 6666.6666 7777.7777 8888.8888 9999.9999 1010.1010 1110.1111 1210.1212 1310.1313 1414.1414 実際には縦横に永遠とデータが羅列されています。空白部分はタブ区切りになっています。横に7000ほどのデータを読むと、改行されています。これがテキスト方式で保存されています。 このデータ群の先頭に6行文のデータを追加したいと試みています。以下のような感じのデータです。 ncols 1019 nrows 1923 xllcorner -67.2327777773961 yllcorner 44.63742951396 cellsize 0.000277777777779674 NODATA_VALUE -9999 open関数で data.txt を開き、write を使ってしまうと、data.txt 内のデータが全て消えてしまうのですが、どのようにすれば上記にある6つのデータを書き加える事ができるのでしょうか? 大本のデータは縦横に 9000x7000 近くのデータがタブで区切られて保存されており、その大きさが 500MB を越えていて、職場のPCではノートパッドで開いてから書き足す事ができません。 どなたかアドバイスを頂ければ幸いであります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- morchin
- ベストアンサー率16% (212/1281)
試していませんが、以下で可能です。 fi = open('data.txt') txt = fi.read() fi.close() fo = open('data.txt','w') fo.write('''ncols 1019 nrows 1923 xllcorner -67.2327777773961 yllcorner 44.63742951396 cellsize 0.000277777777779674 NODATA_VALUE -9999 ''') fo.write(txt) fo.close()
- Wr5
- ベストアンサー率53% (2173/4061)
Python使ったことありませんが… >open関数で data.txt を開き、write を使ってしまうと、data.txt 内のデータが全て消えてしまうのですが、どのようにすれば上記にある6つのデータを書き加える事ができるのでしょうか? 既存ファイルの途中に「追記」ができるモノはちょっと知らないです。 ファイルを2つ開いて、片方からは読み込み、もう片方に変更したデータを書き出していく。 というのがオーソドックスなやり方ですね。 たいていの言語では。 # テキストエディタのマクロ言語などでは途中にデータの挿入とかできたりしますが。 # テキスト編集するためのモノですしね。
お礼
Wr5 さん、 アドバイスをありがとうございます。 『ファイルを2つ開いて、片方からは読み込み、もう片方に変更したデータを書き出していく』、がオーソドックスなアプローチとの事ですので、ネットで色々と検索してみようと思います。