2017-03-11 2 views
0

OpenCVで画像処理を使ってパーキングスロットがいっぱいであるかどうかを検出するプロジェクトがあり、結果をHTMLページに表示する必要があります。Pythonを使用してHTMLコードの2つの非常に特定の行だけを変更するにはどうすればよいですか?

2つのパーキングスロットがあり、そのうちの1つが占有されていると、コードに適切な回答が表示され、基本的なHTMLページも用意されています。 HTMLコードは次のとおりです。

<style> 
.rect { 
    height: 100px; 
    width: 50px; 
    display: inline-block; 
    background-color: green; 
} 
.alert { 
    background-color: green; 
} 
</style> 
<head> 
     <meta http-equiv="refresh" content="01"> 
    <title> 
     Slot Data 
    </title> 
</head>   
<body> 
    <div class="rect"></div> 

    <div class="rect alert"></div> 

</body> 

だから私のPythonコードでは、私は、検索と置換(占有する場合)、赤と緑の単語をして見つけて、HTMLコードに(空の場合)、緑と赤交換する文字列を置き換える使用しました。

1つのスロットでうまく機能します。私は2つのスロットを持っている場合は、1つのスロットがいっぱいになっても色の変化が反映されます、それは '緑'のすべてのインスタンスを '赤'に置き換えるためです。行番号を変更してください。 6およびライン番号。私のHTMLファイルの9。 行番号を変更する方法はありますか?スロット1と回線番号は6です。スロット2の場合は9?

if count1 >= 0.65 * 122*85: 
       print "car0 absent" 
       cv2.rectangle(dst1,(8,8),(340,488),(0,255,0),2) #green 
       cv2.putText(dst1,'slot empty',(12,450), font, 1,(255,255,255),1,cv2.LINE_AA) 
       f = open('test.html','r') 
       filedata = f.read() 
       f.close() 
       newdata = filedata.replace("red","green") 
       f = open('test.html','w') 
       f.write(newdata) 
       f.close() 


      else: 
       print "car0 present" 
       cv2.rectangle(dst1,(8,8),(340,488),(0,0,255),2) #red 
       cv2.putText(dst1,'slot occupied',(12,450), font, 1,(255,255,255),1,cv2.LINE_AA) 
       f = open('test.html','r') 
       filedata = f.read() 
       f.close() 
       newdata = filedata.replace("green","red") 
       f = open('test.html','w') 
       f.write(newdata) 
       f.close() 

上記スニップは同じ符号が同様スロット2のために繰り返されるスロット1のためのものである:

はここに私のPythonコードスニペットです。だから私は変更する必要がある「6」「9」にスロット2

ため

f.linenumber(6) = '__' 
f.linenumber(9) = '__' 

そのようなものがありますか?

私はファイルI/Oコマンドの多くの組み合わせを試みましたが、何もしませんでした!

答えて

0

は、ここでそれを行うための一つの方法です:

>>> lines = filedata.split('\n') 
>>> lines[5] = lines[5].replace('green', 'red') 
>>> lines[8] = lines[8].replace('green', 'red') 
>>> newdata = '\n'.join(lines) 
>>> print(newdata) 
<style> 
.rect { 
    height: 100px; 
    width: 50px; 
    display: inline-block; 
    background-color: red; 
} 
.alert { 
    background-color: red; 
} 
</style> 
<head> 
     <meta http-equiv="refresh" content="01"> 
    <title> 
     Slot Data 
    </title> 
</head> 
<body> 
    <div class="rect"></div> 

    <div class="rect alert"></div> 

</body> 
>>> 
+0

私はそれを試してみましたが、私のコードで実装する場合、それはこれを与える: 'トレースバック(最新の呼び出しの最後): ファイル「C:\ユーザー\ Niranjan \デスクトップ\ FINAL YEAR PROJECT \ Pythonのコード\ f.write(NEWDATA)での主な作業の\ vid2..py」、ライン86 \ CARのWORK、 例外IOError:[errnoを0]エラー ' –

+0

を開いてみてください'test.html'とは異なるファイル、または書き込み権限がある別のディレクトリにあります。 – Sharad

+0

私のすべてのファイルは、私のPC上のすべてのプログラムに開いています。私はWindows上で、もし重要であれば –

関連する問題