2016-04-07 12 views
0

私はファイルかstdinからの入力を受け入れ、入力としてファイルのようなオブジェクトを取るパンダread_csvを使用してそれらを解析するいくつかの解析スクリプトを持っています。Pythonでstdinをリセットまたは再読み込みしますか?

時々ヘッダが異なるので、ファイルを読み込もうとするtry-exceptを設定しましたが、解析に失敗した場合は別のヘッダ指定を試してみてください。

これはファイルでは機能しますが、入力としてstdinを使用すると、最初の試行でヘッダー行がread_csvで「消費された」ように見えます。

この行をバッファリング、またはパンダが好きになる方法で、を解析において、第2の試みのためstdinをリセットする方法がある場合、私は疑問に思って。

ないサンプルコードは役立ちますが、確認してください。

if Opt.Args: 
    FileName = Opt.Args[0] 
    print >> sys.stderr, "READING from FILE",FileName 
elif not sys.stdin.isatty(): 
    print >> sys.stderr, "READING from STDIN" 
    FileName = sys.stdin 

try: 
    df = pd.read_csv(FileName,header=0,sep="\t", parse_dates=['RecordedDate']) 
except ValueError: 
    try: 
     df = pd.read_csv(FileName,header=0,sep="\t",parse_dates=['RecordedDate_10']) 
...etc... 

答えて

1

STDIN、異なるオペレーティングシステム間で動作する少なくともいないものを「リセット」する一つの完璧な方法はありません。しかし、STDINを "再結合"しようとすると、実際にそれをクリアすることができます。

unixoidシステム上

、このような何かが、仕事ができる:オープン

輸入SYS
テキスト= sys.stdin.read()
sys.stdinを=( "は/ dev/ttyの") SEL = raw_input( "コピー選択:?")

参照してください:http://www.gossamer-threads.com/lists/python/python/467361

関連する問題