```

    import sys, io
    
    # UTF8にエンコード
    sys.stdout = io.TextIOWrapper(sys.stdout, encoding='utf-8')
    
    print("hello")
    
```

上記のコードを実行したところ、

```

    UnsupportedOperation                      Traceback (most recent call last)
    <ipython-input-4-7af1dd44dff7> in <module>()
         21     s.decompose()
         22 text = ' '.join(soup.stripped_strings)
    ---> 23 print(text)
    
    UnsupportedOperation: not writable
    
```

というエラーが出てしまいました。原因が不明のため、ご教授お願いします。jupyternotebookで実行しています。
CC BY-SA 3.0
2018-04-02T06:45:13.283
42866
2018-04-03T03:36:20.313
2018-04-03T03:36:20.313
3054
27714
question
python jupyter-notebook
Jupyter Notebook の sys.stdout を io.TextIOWrapper でラップできない
jupyter notebookを使用している場合、出力先はipythonになります。

```

    import sys, io
    sys.stdout
    
```

上のコードを実行すると

```

    <ipykernel.iostream.OutStream at 0xXXXXXXXXXXXX>
    
```

というようになります。

jupyter notebookへの出力でコード変換をするとすれば、下のようなコードになると思うのですが

```

    sys.stdout = ipykernel.iostream.OutStream(encoding='utf-8')
    
```

以下のようなエラーになってしまいます。

```

    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-20-90d17bbb039b> in <module>()
    ----> 1 sys.stdout = ipykernel.iostream.OutStream(encoding='utf-8')
    
    TypeError: __init__() got an unexpected keyword argument 'encoding'
    
```

最近は、UTF-8固定の時代になってきているので、UTF8にエンコードすることは忘れてもいいのではないでしょうか。
CC BY-SA 3.0
2018-04-03T03:19:44.420
42880
2018-04-03T03:19:44.420
15171
42866
answer