Pythonista-Issues icon indicating copy to clipboard operation
Pythonista-Issues copied to clipboard

Directory picker function

Open legopitstop opened this issue 9 months ago • 3 comments

Currently, it's not possible to "pick" directories using Python. I suggest adding a pick_directory function to the dialogs package, which will return the path to the directory with read/write permissions.

Example:

from os import path
import dialogs

p = dialogs.pick_directory()

fp = path.join(p, 'test.txt')
with open(fp, 'w') as f:
    f.write('Hello, World!')

This can be done in Pyto but not with Pythonista

import file_system

p = file_system.pick_directory()

legopitstop avatar Mar 27 '25 23:03 legopitstop

This does not work as you would hope that it would. :-)

https://omz-software.com/pythonista/docs-3.4/py3/ios/dialogs.html#dialogs.pick_document

from pathlib import Path
from dialogs import pick_document

Path(pick_document(types=["public.directory"]) / "test.txt").write_text("Hello, World!")
# --> ValueError: Invalid document types
# `public.folder` and `public.item` also fail.

cclauss avatar Mar 28 '25 08:03 cclauss

This is a good idea. dialogs.pick_document() doesn't work for giving access to a directory because the file picker is shown in "import" mode. I'll consider adding a variant for getting read/write access to a directory.

omz avatar Mar 28 '25 10:03 omz