• 締切済み

pythonについて質問です。

2つのテキストファイルを読み込み、以下の処理を行い新しいテキストファイルに書き込みたいのですがどう組んでいいか分かりません、わかる方いましたら教えてください。 (処理内容) test1.txtにしか無いキーの場合、値を2倍 test2.txtにしか無いキーの場合、値を10倍 test1とtest2の同一のキーが有る場合、値を足して4倍にする。 [test1.txt] key 値 10 1000 20 2000 30 3000 40 4000 [test2.txt] key 値 1 10 10 100 17 170 30 300 40 400 【理想結果】 key 値 1 100 10 4400 17 1700 20 4000 30 13200 40 17600 お手数ですが、宜しくおねがいします。

noname#237123
noname#237123

みんなの回答

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.2

pythonなのかな?Cなのかな?

回答No.1

test1.txtの内容をtest1_dictに、test2.txtの内容をtest2_dictに辞書として読み込んでいると仮定します。 test1とtest2に共通するキーは、 test1_test2 = test1_dict.keys() & test2_dict.keys() で取得できます。また、これを使ってtest1だけにあるキーは test1_only = test_dict.keys() - test1_test2 で取得できます。

関連するQ&A

  • pythonについて質問です。

    2つのテキストファイルを読み込み、以下の処理を行い新しいテキストファイル(csv)に書き込みたいのですがわかる方いましたら教えてください。 (処理内容) test1.txtにしか無いキーの場合、値を2倍 test2.txtにしか無いキーの場合、値を10倍 test1とtest2の同一のキーが有る場合、値を足して4倍にする。 [test1.txt] key 値 10 1000 20 2000 30 3000 40 4000 [test2.txt] key 値 1 10 10 100 17 170 30 300 40 400 【理想結果】 key 値 1 100 10 4400 17 1700 20 4000 30 13200 40 17600 [ソース] def read2dic(p,d): ・with open(p,"r") as f: ・・for l in f: ・・・s=l.replace("\n","").split("") ・・・d[s[0]]=int(s[1]) a={} b={} read2dic("test1.txt",a) read2dic("test2.txt",b) bkeys=b.keys() for k,v in a.items(): ・if k in bkeys: ・・bv=b[k] ・・del b[k] ・・a[k]=(v+bv)*4 ・else: ・・a[k]=v*2 for k,v in b.items(): ・a[k]=v*10

  • EXCEL VBAでテキストファイルの特定の場所にデータを書き込む方法

    エクセルVBAのテキスト操作について質問なのですが、以下のようなテキストファイルがあったとしてKey1とKey2の間にデータを書き込みたいのですがどのようにすれば宜しいでしょうか。 宜しくお願い致します。 --- test.txt ここから --- aaaa bbbb Key1 cccc (ここにデータを書き込みたいです。) Key2 eeee --- test.txt ここまで ---

  • バッチファイルで実行したコマンドの結果を待たずに処理を続行する方法

    環境はWindowsXPHomeです。 以下のような.batファイルがあったとして ---a.bat--- REM テキストファイルを開く test.txt REM その後の処理を続行 … test.txtを実行すると.txtに関連付けられたエディタが起動します。 しかし、test.txtを実行したあと、その後の処理が続行されるには test.txtを閉じる必要があります。 text.txtを閉じなくても後続の処理を続行するには どうすればよいでしょうか? よろしくお願いいたします。

  • 外部ファイル操作について

    外部ファイルへの入出力のやり方についてアドバイスお願いします。 外部ファイルは 書き込み専用(Sample.txtの内容を書き込む)のファイル「Test.txt」と 書き込む内容を記載してあるファイル「Sample_01.txt」と「Sample_02.txt」の2種類を用意しておきます。 「Sample_01.txt」には 1.おはよう 2.こんにちは 3.こんばんは Sample_02.txt」には 1.いただきます 2.ごちようさま 「Test.txt」の1行目には 【Sampleテキストの内容】 という文字列をそれぞれ初めから記載しておきます。 ファイルの読み込み・書き込みにおいて、「Test.txt」に1行目(【Sampleテキストの内容】 )を消さずに読み込み・書き込みするにはどうしたらよいのでしょうか。 また、「Test.txt」に1行目に【Sampleテキストの内容】という文字列が存在するかを判定するにはどうしたらよいのですか。 お手数ですが、アドバイスお願いします。 出力はDOS画面に行います。

    • ベストアンサー
    • Java
  • 終了コード errorlevel の考え方について

    こんばんは。 OSはWindowsXP Proを使っています。 テキストファイルに書いてある値を 終了コードにするバッチファイルを作成しました。 以下の2ファイルを同じディレクトリに保存します。 test.txt ┌--------┐   1 └--------┘ test.bat ┌---------------------------------------┐   @echo off   find "0" test.txt   if not errorlevel 1 exit /b 0   find "1" test.txt   if not errorlevel 1 exit /b 1   echo テキストは0~1の値ではありません。   exit /b 2 └---------------------------------------┘ この状態で次のように実行します (1) C:\>test.bat ---------- TEST.TXT ---------- TEST.TXT 1 (2) C:\>echo %errorlevel% 1 (3) C:\>set errorlevel=0 (4) C:\>echo %errorlevel% 0 ※ここでtest.txtの中の数字を2にします。 (5) C:\>test.bat ---------- TEST.TXT ---------- TEST.TXT テキストは0~1の値ではありません。 (6) C:\>echo %errorlevel% 0 (7) C:\>set errorlevel= (8) C:\>echo %errorlevel% 2 となります。 (2)の結果から、(1)で実行した「exit /b 1」でerrorlevelに1が格納されることが判ります。 しかし、(6)の結果から、(3)で実行した「set errorlevel=0」が (5)で実行した「exit /b 2」より優先されていることが判ります。 しかし(7)でerrorlevelの値を消去したように思われますが、 (8)の結果から、(3)のセットを消去しつつ(5)で実行した「exit /b 2」を記憶しているように見えます。 この挙動について、どのように理解すれば良いのでしょうか。 また「exit /b ○」と「set errorlevel=○」でセットする違いについて教えて頂ければと思います。 お願いします。

  • ファイル検索

    こんにちは。質問させてください。 あるフォルダ(ここでは$dir = "c:\\test\\file_data\\"とでもしておきます。)内に テキストファイルが複数存在するとします。 test1218.01.file1.txt test1218.10.file1.txt test1218.11.file1.txt test1219.01.file1.txt test1219.10.file1.txt test1219.11.file1.txt test1219.01.file2.txt test1219.10.file2.txt test1219.11.file2.txt 上記のようなファイル名のテキストファイルが存在したとします。 それでこのテキストファイルのうち、以下のファイルの内容を画面に表示したいと 考えています。 test1219.01.file1.txt test1219.10.file1.txt test1219.11.file1.txt 1219(今日の日付という意味), file1(一回目のファイルという意味)で 構成された上記のファイルを指定されたディレクトリ($dir)以下で 検索し上記のファイル名を取得し、また取得したファイルの中身を 表示するロジックを考えています。 ひとつのファイルを取得することはできたのですが、 複数となる(上記の場合は3つ当てはまることはわからないので 指定する日付などで取得ファイル数がかなりことなる)ため うまく書くことができません。 どなたかいいロジックなどをお持ちでしたら ぜひ伝授していただけたらと考えています。 どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Pythonのreadlineについて

    最近Pythonのプログラミングを始めたのですが、Pythonのプログラミングについて以下のことを行いたいのですが、やり方が分からず困っております。 Pythonで行いこと 1.textファイルに例えば以下のようにいくつかの係数を入力しておきます。 a:0.5, b:0.8, c:0.9 2.上記のテキストファイルを読み込み、pythonの変数a、b、cに値を格納したいと考えています。 色々検索している中でテキストファイルの読み込みはf=open(xxx.txt)で読み込み、各行の読み込みはreadline()というコマンドでできることは分かったのですが、lines=f.readline()とした後、その"line"の中からaが0.5、bが0.8という数字部分だけを切り出してプログラム中の変数に渡す方法が分からない状態です。 皆様のお知恵を拝借いたしたく、宜しくお願いいたします。

  • バッチファイルについて

    お聞きしたいのですが、 あるディレクトリーに test.bat test.php test.txt があり test.bat で test.php を起動して text.txt を一行一行処理しているのですが、 バッチファイルで、強制終了したとして(Ctrl + C) もう一度起動せずに Entertキー を押して test.txt の次の行から開始したいのですが可能ですか?? 詳しい方がいましたら教えてください。 宜しくお願いします。

  • アクセス VBA ファイル操作

    ノートパッドなどテキストエディタで開くことができる、拡張子がtxtではないファイルがあります。 そのファイルをテキストエディタで開いて、名前を変えて、テキストファイルとして保存したいのです が、どのようなコードになりますでしょうか? 下記で開くのですが、 Shell "NOTEPAD C:\test\sampl\abc.ini" その後、 SaveAs FileName:="C:\test\temp\xyz.txt", のように処理しようと思ったのですが、上手くいきません。 お手数ですがご教示ください。

  • sedスクリプト 置換

    この度、はじめてsedスクリプトをかいてみようと思っています。 以下の機能を持った置換スクリプトを書きたいのですが、 アドバイスなど頂ければ幸いです。 ・abcディレクトリ内を検索して(サブディレクトリも含む)、test.txtというファイルを探し出す(test.txtは複数あります) ・検索された複数のtext.txtを一括で置換する ↓置換内容 ・test.txtの5行目にある文字列を1からはじまる連番に置換する(test.txtは複数あるので、処理した順に連番をつけていく) イメージが伝わりにくい場合は、どうかご指摘ください。 よろしくお願いします