@@ -820,6 +820,9 @@ bugs or failures in your application)::
820
820
% (cls.__name__,))
821
821
UnsupportedOperation: cannot instantiate 'WindowsPath' on your system
822
822
823
+ Some concrete path methods can raise an :exc: `OSError ` if a system call fails
824
+ (for example because the path doesn't exist).
825
+
823
826
824
827
Parsing and generating URIs
825
828
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -1151,69 +1154,32 @@ Reading and writing files
1151
1154
.. versionadded :: 3.5
1152
1155
1153
1156
1154
- Other methods
1155
- ^^^^^^^^^^^^^
1156
-
1157
- Some of these methods can raise an :exc: `OSError ` if a system call fails (for
1158
- example because the path doesn't exist).
1159
-
1160
-
1161
- .. classmethod :: Path.cwd()
1162
-
1163
- Return a new path object representing the current directory (as returned
1164
- by :func: `os.getcwd `)::
1165
-
1166
- >>> Path.cwd()
1167
- PosixPath('/home/antoine/pathlib')
1168
-
1169
-
1170
- .. classmethod :: Path.home()
1171
-
1172
- Return a new path object representing the user's home directory (as
1173
- returned by :func: `os.path.expanduser ` with ``~ `` construct). If the home
1174
- directory can't be resolved, :exc: `RuntimeError ` is raised.
1175
-
1176
- ::
1177
-
1178
- >>> Path.home()
1179
- PosixPath('/home/antoine')
1180
-
1181
- .. versionadded :: 3.5
1182
-
1183
-
1184
- .. method :: Path.chmod(mode, *, follow_symlinks=True)
1185
-
1186
- Change the file mode and permissions, like :func: `os.chmod `.
1187
-
1188
- This method normally follows symlinks. Some Unix flavours support changing
1189
- permissions on the symlink itself; on these platforms you may add the
1190
- argument ``follow_symlinks=False ``, or use :meth: `~Path.lchmod `.
1191
-
1192
- ::
1193
-
1194
- >>> p = Path('setup.py')
1195
- >>> p.stat().st_mode
1196
- 33277
1197
- >>> p.chmod(0o444)
1198
- >>> p.stat().st_mode
1199
- 33060
1200
-
1201
- .. versionchanged :: 3.10
1202
- The *follow_symlinks * parameter was added.
1157
+ Reading directories
1158
+ ^^^^^^^^^^^^^^^^^^^
1203
1159
1204
- .. method :: Path.expanduser ()
1160
+ .. method :: Path.iterdir ()
1205
1161
1206
- Return a new path with expanded ``~ `` and ``~user `` constructs,
1207
- as returned by :meth: `os.path.expanduser `. If a home directory can't be
1208
- resolved, :exc: `RuntimeError ` is raised.
1162
+ When the path points to a directory, yield path objects of the directory
1163
+ contents::
1209
1164
1210
- ::
1165
+ >>> p = Path('docs')
1166
+ >>> for child in p.iterdir(): child
1167
+ ...
1168
+ PosixPath('docs/conf.py')
1169
+ PosixPath('docs/_templates')
1170
+ PosixPath('docs/make.bat')
1171
+ PosixPath('docs/index.rst')
1172
+ PosixPath('docs/_build')
1173
+ PosixPath('docs/_static')
1174
+ PosixPath('docs/Makefile')
1211
1175
1212
- >>> p = PosixPath('~/films/Monty Python')
1213
- >>> p.expanduser()
1214
- PosixPath('/home/eric/films/Monty Python')
1176
+ The children are yielded in arbitrary order, and the special entries
1177
+ ``'.' `` and ``'..' `` are not included. If a file is removed from or added
1178
+ to the directory after creating the iterator, it is unspecified whether
1179
+ a path object for that file is included.
1215
1180
1216
- .. versionadded :: 3.5
1181
+ If the path is not a directory or otherwise inaccessible, :exc: `OSError ` is
1182
+ raised.
1217
1183
1218
1184
1219
1185
.. method :: Path.glob(pattern, *, case_sensitive=None, recurse_symlinks=False)
@@ -1281,43 +1247,6 @@ example because the path doesn't exist).
1281
1247
The *pattern * parameter accepts a :term: `path-like object `.
1282
1248
1283
1249
1284
- .. method :: Path.group(*, follow_symlinks=True)
1285
-
1286
- Return the name of the group owning the file. :exc: `KeyError ` is raised
1287
- if the file's gid isn't found in the system database.
1288
-
1289
- This method normally follows symlinks; to get the group of the symlink, add
1290
- the argument ``follow_symlinks=False ``.
1291
-
1292
- .. versionchanged :: 3.13
1293
- Raises :exc: `UnsupportedOperation ` if the :mod: `grp ` module is not
1294
- available. In previous versions, :exc: `NotImplementedError ` was raised.
1295
-
1296
- .. versionchanged :: 3.13
1297
- The *follow_symlinks * parameter was added.
1298
-
1299
-
1300
- .. method :: Path.iterdir()
1301
-
1302
- When the path points to a directory, yield path objects of the directory
1303
- contents::
1304
-
1305
- >>> p = Path('docs')
1306
- >>> for child in p.iterdir(): child
1307
- ...
1308
- PosixPath('docs/conf.py')
1309
- PosixPath('docs/_templates')
1310
- PosixPath('docs/make.bat')
1311
- PosixPath('docs/index.rst')
1312
- PosixPath('docs/_build')
1313
- PosixPath('docs/_static')
1314
- PosixPath('docs/Makefile')
1315
-
1316
- The children are yielded in arbitrary order, and the special entries
1317
- ``'.' `` and ``'..' `` are not included. If a file is removed from or added
1318
- to the directory after creating the iterator, whether a path object for
1319
- that file be included is unspecified.
1320
-
1321
1250
.. method :: Path.walk(top_down=True, on_error=None, follow_symlinks=False)
1322
1251
1323
1252
Generate the file names in a directory tree by walking the tree
@@ -1413,6 +1342,84 @@ example because the path doesn't exist).
1413
1342
1414
1343
.. versionadded :: 3.12
1415
1344
1345
+
1346
+ Other methods
1347
+ ^^^^^^^^^^^^^
1348
+
1349
+ .. classmethod :: Path.cwd()
1350
+
1351
+ Return a new path object representing the current directory (as returned
1352
+ by :func: `os.getcwd `)::
1353
+
1354
+ >>> Path.cwd()
1355
+ PosixPath('/home/antoine/pathlib')
1356
+
1357
+
1358
+ .. classmethod :: Path.home()
1359
+
1360
+ Return a new path object representing the user's home directory (as
1361
+ returned by :func: `os.path.expanduser ` with ``~ `` construct). If the home
1362
+ directory can't be resolved, :exc: `RuntimeError ` is raised.
1363
+
1364
+ ::
1365
+
1366
+ >>> Path.home()
1367
+ PosixPath('/home/antoine')
1368
+
1369
+ .. versionadded :: 3.5
1370
+
1371
+
1372
+ .. method :: Path.chmod(mode, *, follow_symlinks=True)
1373
+
1374
+ Change the file mode and permissions, like :func: `os.chmod `.
1375
+
1376
+ This method normally follows symlinks. Some Unix flavours support changing
1377
+ permissions on the symlink itself; on these platforms you may add the
1378
+ argument ``follow_symlinks=False ``, or use :meth: `~Path.lchmod `.
1379
+
1380
+ ::
1381
+
1382
+ >>> p = Path('setup.py')
1383
+ >>> p.stat().st_mode
1384
+ 33277
1385
+ >>> p.chmod(0o444)
1386
+ >>> p.stat().st_mode
1387
+ 33060
1388
+
1389
+ .. versionchanged :: 3.10
1390
+ The *follow_symlinks * parameter was added.
1391
+
1392
+ .. method :: Path.expanduser()
1393
+
1394
+ Return a new path with expanded ``~ `` and ``~user `` constructs,
1395
+ as returned by :meth: `os.path.expanduser `. If a home directory can't be
1396
+ resolved, :exc: `RuntimeError ` is raised.
1397
+
1398
+ ::
1399
+
1400
+ >>> p = PosixPath('~/films/Monty Python')
1401
+ >>> p.expanduser()
1402
+ PosixPath('/home/eric/films/Monty Python')
1403
+
1404
+ .. versionadded :: 3.5
1405
+
1406
+
1407
+ .. method :: Path.group(*, follow_symlinks=True)
1408
+
1409
+ Return the name of the group owning the file. :exc: `KeyError ` is raised
1410
+ if the file's gid isn't found in the system database.
1411
+
1412
+ This method normally follows symlinks; to get the group of the symlink, add
1413
+ the argument ``follow_symlinks=False ``.
1414
+
1415
+ .. versionchanged :: 3.13
1416
+ Raises :exc: `UnsupportedOperation ` if the :mod: `grp ` module is not
1417
+ available. In previous versions, :exc: `NotImplementedError ` was raised.
1418
+
1419
+ .. versionchanged :: 3.13
1420
+ The *follow_symlinks * parameter was added.
1421
+
1422
+
1416
1423
.. method :: Path.lchmod(mode)
1417
1424
1418
1425
Like :meth: `Path.chmod ` but, if the path points to a symbolic link, the
0 commit comments