Why does pathlib not have is_readable() & things like that?
Adam Funk
a24061 at ducksburg.com
Fri Apr 29 05:49:42 EDT 2016
On 2016-04-28, Grant Edwards wrote:
> On 2016-04-28, Adam Funk <a24061 at ducksburg.com> wrote:
>> On 2016-04-26, Random832 wrote:
>>
>>> On Tue, Apr 26, 2016, at 09:30, Adam Funk wrote:
>>>> I recently discovered pathlib in the Python 3 standard library, & find
>>>> it very useful, but I'm a bit surprised that it doesn't offer things
>>>> like is_readable() and is_writable. Is there a good reason for that?
>>>
>>> Well, one reason would be EAFP. Just try to open the file and see if it
>>> gives you a PermissionError.
>>
>> I understand that in general, but the tool I'm working on here takes a
>> command-line option to specify an output directory, & I'd rather not
>> start processing the data (which involves GETting from a REST service,
>> processing, and PUTting back modifications to the data) only to crash
>> after the first batch because of a user error.
>
> Then open the output file before you do the GET.
I guess I could, but fetching the data actually involves a whole lot
of GET requests (the first one includes cross-references to the URLs
where the rest of the data is found), some BeautifulSoup processing, &
a lot of other processing to produce a big dict, which I then write
out as json using what I think is the best way (output_file is an
instance of pathlib.Path):
with output_file.open(mode='w', encoding='UTF-8', errors='replace') as f:
json.dump(output, f, sort_keys=True, indent=2)
> Or just do os.access("directory/where/you/want/to/open/a/file",os.W_OK)
That's what I'm doing now, but I prefer to give the user the error
message early on.
More information about the Python-list
mailing list