TXTファイルの行が別のTXTファイルPythonの番号で始まる場合 -- python フィールド と compare フィールド と line フィールド 関連 問題

if lines of txt file start with numbers in another txt file python












0
vote

問題

日本語
<事前> <コード> with open('D:Scripting Test/Full Data.txt') as f: for line in f: with open('D:Scripting Test/Numbers.txt') as ff: for linee in ff: if line.startswith(linee): print(line)

ファイル内のすべての行をファイル(number.txt)

の任意の数字で始める場合は、すべての行(full-data.txt)を印刷したいです。

full-data.txt:

<事前> <コード> 4/0/0 3/0/7 4/0/7 4/0/3 4/0/4 4/0/1 3/0/5 3/0/1 2/0/5 2/0/3 2/0/4 2/0/6 3/0/2 1/0/3 6/0/6 6/0/12 1/0/5 1/0/4 3/0/4

numbers.txt:

<事前> <コード> 1 2 5 8

出力は次のようにする必要があります:

<事前> <コード> 2/0/5 2/0/3 2/0/4 2/0/6 1/0/3 1/0/5 1/0/4
英語
with open('D:Scripting Test/Full Data.txt') as f:  for line in f:    with open('D:Scripting Test/Numbers.txt') as ff:      for linee in ff:        if line.startswith(linee):            print(line) 

i want to print all lines in file (full-data.txt) if they start with any numbers in file (numbers.txt)

full-data.txt:

4/0/0         3/0/7         4/0/7         4/0/3         4/0/4         4/0/1         3/0/5         3/0/1         2/0/5         2/0/3         2/0/4         2/0/6         3/0/2         1/0/3         6/0/6         6/0/12        1/0/5         1/0/4         3/0/4         

Numbers.txt:

1   2   5   8 

output should be:

2/0/5         2/0/3         2/0/4         2/0/6  1/0/3  1/0/5         1/0/4 
</div
        
     
     

回答リスト

0
 
vote
vote
ベストアンサー
 

あなたの問題は、数字のいくつかで読んだとき、彼らは改行文字やスペースなどの空白文字が含まれていることです。だから、配列に数値のすべての最初の読み取りを試してみて、離れて任意の空白を除去ます:

<事前> <コード> nums = [] with open('D:\Scripting Test\Numbers.txt') as f: nums = f.read().split(' ') nums = [n.strip() for n in nums if n != ''] # strip whitespace and get rid of empty lines with open('D:\Scripting Test\Full Data.txt') as f: for line in f: for num in nums: if line.startswith(num): print(line)
 

Your issue is that when you read in some of the numbers, they include whitespace like newline characters and spaces. So try first reading in all of the numbers into an array and stripping any whitespace away:

nums = [] with open('D:\Scripting Test\Numbers.txt') as f:     nums = f.read().split(' ')     nums = [n.strip() for n in nums if n != ''] # strip whitespace and get rid of empty lines  with open('D:\Scripting Test\Full Data.txt') as f:     for line in f:         for num in nums:             if line.startswith(num):                 print(line)  
</div
 
 
 
 

関連する質問

0  画面の罫線と交差する線  ( Line intersecting with screen borders ) 
サークルが飛んでいるプログラムを作成してスクリーンの境界線のバウンス。 スクリーンの境界ごとに4行を作った 円は画面の境界線と交差する目に見えない線を移動しています。問題は、この例では、私は常にt = 1になることが、それが交差していた最後の行と交差するためで...

1  TextAreaとMySQLでラインブレークをしてください  ( Keep line break on textarea and mysql ) 
私はMySQLにテキストを送信するためにいくつかのフォームをコーディングしました。私の問題の1つは、改行を妨げることです。 Googleでいくつかのコードが見つかりましたが、私はそれをどのように使うことができるかはわかりません。いくつかの試みは本当に成功しませ...

31  VIM表示ライン番号を作成することは可能ですか?  ( Is it possible to make vim display line numbers ) 
私はVIMで非常に大きなファイルを分析する必要があります(私が使用できるコマンドモードのみ)。 ライン番号を表示するようにVimを設定することは可能ですか? ...

0  PictureBoxのグリッドのすべての行(ColsとRows)に一連の数字を描画する方法  ( How to draw series of numbers in every line cols and rows of grid in picturebo ) 
グリッドコルと行のすべての行に一連の数字をどのように描くのかを尋ねたいです。 ラベルを使用することもできます... このようなもの: > http://oi60.tinypic.com/ablth.jpg PictureBoxのグリッドのための私のコー...

2  MATLABの方程式が未知の2つのプロット曲線間の距離を見つける  ( Finding the distance between two plot curves with unknown equations in matlab ) 
現在 matlab プロジェクトの間の距離を見つける必要があるプロジェクト膝の2つの骨。 アクティブな輪郭の<コード> chenvese プログラムを使用して骨の曲線をプロットするために管理した後、それらの間のスペースを見つける必要があります。 i...

3  フロットグラフ - リアルタイムチャートプロットの線幅  ( Flot graph linewidth in realtime chart plotting ) 
jQuery Flotを使ってリアルタイムグラフをプロットして、グラフの10~15行を実行しています[行数が動的であるため、20以上の時間がある可能性があります]、デフォルトの線幅は1、選択された1つです。線幅を3に変更したいです。 選択した行のデータ[in...

1  Python 2.7ネストされたIF-ステートメントは、アレイ位置を印刷した後に文字列リテラルを印刷しない  ( Python 2 7 nested if statement wont print string literal after printing array p ) 
私は、インフルエンザAのタンパク質のアミノ酸配列のリストを走行しているプログラムを持っています。 私のコードはこののように機能します <事前> <コード> with open(file, "r" ) as source: for heading_an...

0  HighCharts間違ったデータポイントを選択します  ( Highcharts selects the wrong data point ) 
私は2つのシリーズ(タイプ "ラインとして"その他 "散布"を持つハイチャートを持っています。 「線」SERIEは1000以上の値点を持ち、「散布」SERIEには1つの値点(この点のY値が= 2)です。 YAXISの「散布」点を選択したいが、この点は選択され...

1  OpenGL:描画線  ( Opengl drawing lines ) 
線を描きたい場合は、2桁のみのGL_LINESプリミティブの純粋な線です。 GLPOLYGONMODEをGL_LINEにする必要がありますか?または描画プリミティブをGL_LINESに設定するのが十分ですか? 編集:現代のOpenGL Technicsを使う...

4  ラインへのスナップポイント  ( Snap point to a line ) 
私はラインを作るために結合する2つのGPS座標を持っています。私はまた、近くにあるが正確には、行だけではありません。私の質問は、与えられた点に線に沿って最も近い点を見つける方法ですか? ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有