2017-01-09 5 views
1

私は問題を絞り込むために最後の数時間を試みてきましたが、私はそれを見ることができません。私はPython 3の新機能で、プロジェクトのテキストファイルを解析しようとしています。 構文解析は、単に空白の一部を消去し、区切り文字を置き換えます。 なぜ動作しないのか分かりません。データをファイルに書き込めませんか?私はエラーが表示されません

具体的 私は、この特定のエラーを取得しています:

"NameError: name 'out' is not defined" 

コード:DUBLINが発生します。

save_path = 'C:/UsersDesktop/CSVproject' 

with open('C:/Users/CSVproject/sourceData.dat', 'r') as f: 

    for line in f: 
     if ':DUBLIN' in line: 
      line = line.replace(' ', '') 
      line = line.replace(':', ';') 
      print(line) 
      found = True 
      fullNameOfFile = os.path.join(save_path, 'newFormattedData'+".csv") 
      out = open(fullNameOfFile, 'w') 

     for line in f: 
      out.write(line) 

答えて

2

あなたがするたびに単語をファイルを開こうとしています。一度だけ開く必要があります。また、スコープでwriteメソッドにハンドルが確実に表示される場所で開く必要があります。

fullNameOfFile = os.path.join(save_path, 'newFormattedData'+".csv")  

out = open(fullNameOfFile, 'w') 

for line in f: 
    if ':DUBLIN' in line: 
     line = line.replace(' ', '') 
     line = line.replace(':', ';') 
     print(line) 
     found = True 

     out.write(line) 

入力ファイルを反復処理するためにネストループを使用したくないのは間違いありません。

+0

ああ撮影!私はあなたのシートを意味する...私はあなたの提案を実装しました。有難うございます。私が望むようにファイルを作成しますが、replaceメソッドで解析ロジックを強制しません。また、コードにあるように、それはコンソールに印刷されません。私はおそらく私が見ることができない非常にばかげた何かをしています... – paglynn

+0

これはあなたの即座に問題を解決するだろうので、あなたは正しいとして答えを受け入れ、別の質問を投稿して気になります。その質問の中で、あなたが達成しようとしていることを説明してください。サンプル入力がどのようなもので、出力ファイルに保存するもの。 – e4c5

+0

十分に公正です。ご協力ありがとうございます。私はサイトのスパムユーザーとして出会いたくはありません。もう一度投稿する前にコードをもう一度試してみます。 – paglynn

関連する問題