![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
#!/usr/bin/env python
#vim: fileencoding=utf-8
from math import*
import sys
outfp=open('test.dat','w')
outfq=open('ab.dat','w')
for line in open('para.dat','r'):
items=line.split('\t')
s=2/float(items[0])
u=float(items[1])-5+log(s/100)
outfp.write(str(s))
outfq.write(str(u))
outfp.close()
outfq.close()
////para.dat////
1 2
1 3
として、プログラムを実行したのですが、ファイルに出力した時に、
para.datの2列目(1 3)の計算した結果しか、ファイルに書き込まれてないのですが、
どうすれば、すべて反映されて、出力ファイルに結果が出せるのでしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
どうやって確認しましたか?
writeはprintと違って改行や空白が入らずに出力されます。
手許のだと
test.dat
2.02.0
(最後に改行無し)
ab.dat
-6.91202300543-5.91202300543
(最後に改行無し)
となります。
前半の 2.0 -6.91202300543 が1 2、 後半の2.0 -5.91202300543 が1 3の計算結果です。
これは、プログラムに書かれた通りに実行されている「正しい動作」です。
あと、ここのQAでは空白がまとめられる、というPythonにとっては致命的な特徴があるの、まとめられない別の文字(全角空白など)に置き換えて書くようにしてください。インデントが変わると、ブロック構成に間違いがあってもわからないくなります。
この回答への補足
#!/usr/bin/env python
#vim: fileencoding=utf-8
from math import*
import sys
outfp=open('test.dat','w')
outfq=open('ab.dat','w')
for line in open('para.dat','r'):
items=line.split('\t')
s=2/float(items[0])
u=float(items[1])-5+log(s/100)
outfp.write(str(s))
outfq.write(str(u))
outfp.close()
outfq.close()
////para.dat////
1 2
1 3
すみません。インデントを施したものを示しました。また、確認は、ターミナルで vi ab.datで確認しました。
これだと、2列目の結果しか反映されません。おねがいします。
No.1
- 回答日時:
このプログラムをそのまま実行すると以下のようになりますが、
////ab.dat////
-6.91202300543-5.91202300543
////test.dat////
2.02.0
outfp.write(str(s) + "\n")
outfq.write(str(u) + "\n")
と変更すると、
////ab.dat////
-6.91202300543
-5.91202300543
////test.dat////
2.0
2.0
求める結果はこういうことでしょうか?
この回答への補足
#!/usr/bin/env python
#vim: fileencoding=utf-8
from math import*
import sys
outfp=open('test.dat','w')
outfq=open('ab.dat','w')
for line in open('para.dat','r'):
あああitems=line.split('\t')
s=2/float(items[0])
u=float(items[1])-5+log(s/100)
outfp.write(str(s))
outfq.write(str(u))
outfp.close()
outfq.close()
上の補足を間違えてしまいました。こちらで、確認してください。
////para.dat////
1 2
1 3
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- その他(プログラミング・Web制作) pythonをjupiter notebookからmecabで頻出の高い単語の抽出について(Runt 1 2022/12/17 18:08
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定フォルダ内のテキストファ...
-
C#でのファイル編集と上書き保...
-
ある文字列を含む行の抽出
-
Rubyで外部ファイル内の文字列...
-
VBAで新しい日付順にファイルを...
-
ExcelVBAを使ってシートの行の...
-
CFile Openで開いたファイルに...
-
VB6側からテキストファイルをク...
-
複数行の文字列を変数として使...
-
access vbaでCSVファイルを文...
-
VBAでPowerPointからExcelにデ...
-
python プログラミング vim
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
大量のフォルダからひとつのフ...
-
バッチでテキストファイルから...
-
バッチ処理でファイルの中身を...
-
多数のサブディレクトリ内のフ...
-
エクセルのVBAについて とある...
-
.txtではなく.logの方が良いの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでPowerPointからExcelにデ...
-
特定フォルダ内のテキストファ...
-
VB6側からテキストファイルをク...
-
複数行の文字列を変数として使...
-
Excel.VBA テキストファイルを...
-
BCPユーティリティの使用法_...
-
fortranでのcsvファイルを出力...
-
テキストファイルの行頭に文字...
-
テキストファイルを直接置換す...
-
ある文字列を含む行の抽出
-
VBAで新しい日付順にファイルを...
-
unicode文字列(日本語)のファイ...
-
iniファイルとの比較(iniファイ...
-
access vbaでCSVファイルを文...
-
バッチでiniファイルの編集
-
VBAで任意のフォルダ内のファイ...
-
A列をテキストファイル名に、B...
-
C#でのファイル編集と上書き保...
-
ランレングス符号化を用いた符...
-
cobolのコメント削除
おすすめ情報