<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Read notebooks programmatically from databricks python notebook in Get Started Discussions</title>
    <link>https://community.databricks.com/t5/get-started-discussions/read-notebooks-programmatically-from-databricks-python-notebook/m-p/55540#M6758</link>
    <description>&lt;P&gt;I need programmatically read the content of the specific notebook in my databricks workspace from another notebook in the same workspace. Following the databricks &lt;A href="https://docs.databricks.com/en/files/workspace-interact.html" target="_self"&gt;documentation&lt;/A&gt;, I extract the path to my notebook and then list all other notebooks in the directory. This works as expected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;notebook_path = os.path.dirname(dbutils.entry_point.getDbutils().notebook().getContext().notebookPath().getOrElse(None))
for f in dbutils.fs.ls(f"file:/Workspace{notebook_path}"):
    print(f)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example: &lt;FONT face="courier new,courier" size="2"&gt;FileInfo(path='file:/Workspace/Users/***/Notebook1', name='Notebook1', size=0, modificationTime=0)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Then I try to read a specific notebook:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;with open(f"/Workspace{notebook_path}/Notebook1", "r") as _f:
    c = _f.read()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I get the following error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;OSError: [Errno 95] Operation not supported

File /databricks/python/lib/python3.10/site-packages/IPython/core/interactiveshell.py:282, in _modified_open(file, *args, **kwargs)
    275 if file in {0, 1, 2}:
    276     raise ValueError(
    277         f"IPython won't let you open fd={file} by default "
    278         "as it is likely to crash IPython. If you know what you are doing, "
    279         "you can use builtins' open."
    280     )
--&amp;gt; 282 return io_open(file, *args, **kwargs)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 20 Dec 2023 08:25:38 GMT</pubDate>
    <dc:creator>evgvain</dc:creator>
    <dc:date>2023-12-20T08:25:38Z</dc:date>
    <item>
      <title>Read notebooks programmatically from databricks python notebook</title>
      <link>https://community.databricks.com/t5/get-started-discussions/read-notebooks-programmatically-from-databricks-python-notebook/m-p/55540#M6758</link>
      <description>&lt;P&gt;I need programmatically read the content of the specific notebook in my databricks workspace from another notebook in the same workspace. Following the databricks &lt;A href="https://docs.databricks.com/en/files/workspace-interact.html" target="_self"&gt;documentation&lt;/A&gt;, I extract the path to my notebook and then list all other notebooks in the directory. This works as expected.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;notebook_path = os.path.dirname(dbutils.entry_point.getDbutils().notebook().getContext().notebookPath().getOrElse(None))
for f in dbutils.fs.ls(f"file:/Workspace{notebook_path}"):
    print(f)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example: &lt;FONT face="courier new,courier" size="2"&gt;FileInfo(path='file:/Workspace/Users/***/Notebook1', name='Notebook1', size=0, modificationTime=0)&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;Then I try to read a specific notebook:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;with open(f"/Workspace{notebook_path}/Notebook1", "r") as _f:
    c = _f.read()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I get the following error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;OSError: [Errno 95] Operation not supported

File /databricks/python/lib/python3.10/site-packages/IPython/core/interactiveshell.py:282, in _modified_open(file, *args, **kwargs)
    275 if file in {0, 1, 2}:
    276     raise ValueError(
    277         f"IPython won't let you open fd={file} by default "
    278         "as it is likely to crash IPython. If you know what you are doing, "
    279         "you can use builtins' open."
    280     )
--&amp;gt; 282 return io_open(file, *args, **kwargs)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Dec 2023 08:25:38 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/read-notebooks-programmatically-from-databricks-python-notebook/m-p/55540#M6758</guid>
      <dc:creator>evgvain</dc:creator>
      <dc:date>2023-12-20T08:25:38Z</dc:date>
    </item>
    <item>
      <title>Re: Read notebooks programmatically from databricks python notebook</title>
      <link>https://community.databricks.com/t5/get-started-discussions/read-notebooks-programmatically-from-databricks-python-notebook/m-p/55547#M6760</link>
      <description>&lt;P&gt;I was able to do this by using&amp;nbsp;databricks.sdk.WorkspaceClient. However, I looks like a workaround. I would prefer to read the content of notebooks directly.&lt;/P&gt;&lt;LI-CODE lang="python"&gt;databricksURL = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiUrl().getOrElse(None)
myToken = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().getOrElse(None)
w = WorkspaceClient(host=databricksURL, token=myToken)
export_response = w.workspace.export(path, format=ExportFormat.JUPYTER)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Any advice appriciated.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Dec 2023 10:29:24 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/read-notebooks-programmatically-from-databricks-python-notebook/m-p/55547#M6760</guid>
      <dc:creator>evgvain</dc:creator>
      <dc:date>2023-12-20T10:29:24Z</dc:date>
    </item>
    <item>
      <title>Re: Read notebooks programmatically from databricks python notebook</title>
      <link>https://community.databricks.com/t5/get-started-discussions/read-notebooks-programmatically-from-databricks-python-notebook/m-p/63499#M6762</link>
      <description>&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Thanks a lot for sharing your code snippet. Helped me a lot to copy some notebooks into our fileshare.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; databricks.sdk &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; WorkspaceClient&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; databricks.sdk.service &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; workspace&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; base64&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;SPAN&gt;def&lt;/SPAN&gt; &lt;SPAN&gt;notebook_reader&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;file_location&lt;/SPAN&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; databricksURL &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; dbutils.notebook.entry_point.&lt;/SPAN&gt;&lt;SPAN&gt;getDbutils&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;notebook&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;getContext&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;apiUrl&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;getOrElse&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;None&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; myToken &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; dbutils.notebook.entry_point.&lt;/SPAN&gt;&lt;SPAN&gt;getDbutils&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;notebook&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;getContext&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;apiToken&lt;/SPAN&gt;&lt;SPAN&gt;().&lt;/SPAN&gt;&lt;SPAN&gt;getOrElse&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;None&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; w &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;WorkspaceClient&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;host&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;databricksURL, &lt;/SPAN&gt;&lt;SPAN&gt;token&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;myToken)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; export_response &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; w.workspace.&lt;/SPAN&gt;&lt;SPAN&gt;export&lt;/SPAN&gt;&lt;SPAN&gt;(file_location, &lt;/SPAN&gt;&lt;SPAN&gt;format&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;workspace.ExportFormat.SOURCE)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; base64.&lt;/SPAN&gt;&lt;SPAN&gt;b64decode&lt;/SPAN&gt;&lt;SPAN&gt;(export_response.content)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 13 Mar 2024 10:28:16 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/read-notebooks-programmatically-from-databricks-python-notebook/m-p/63499#M6762</guid>
      <dc:creator>jenshumrich</dc:creator>
      <dc:date>2024-03-13T10:28:16Z</dc:date>
    </item>
  </channel>
</rss>

