別のマシンからテキストファイルで送信されたデータを取得しようとしています。
while(1):
try:
with open('val.txt') as f:
break
except IOError as e:
continue
f=open("val.txt","r")
counter = f.read()
print counter
f.close()
counter=int(counter)
最初の実行時に、エラーを返します
counter=int(counter)
ValueError: invalid literal for int() with base 10: ''
しかし、プログラムをもう一度実行しようとすると、データを取得できます。助けてくれてありがとう=)
更新:Ashwiniのコメントのおかげで、私は問題を解決することができます。他の人が参照できるように、ここにソリューションを残しておきます。
f.close()の後、try-exceptionメソッドを使用して、空の文字列の問題に対処します。どうやら、ファイルが宛先に到達した後も、ファイル内のデータはまだ空です。
while(1):
try:
counter= int(counter)
break
except ValueError:
f=open("val.txt","r")
counter = f.read()
f.close()
continue
これはプログラムを書くための効果的な方法ではないと思いますが、それでも問題は解決します。