Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2b563f1

Browse files
authored
gh-87901: Add encoding to os.popen (GH-92374)
1 parent926854e commit2b563f1

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

‎Doc/library/os.rst‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3916,12 +3916,13 @@ written in Python, such as a mail server's external command delivery program.
39163916
..availability::Unix.
39173917

39183918

3919-
..function::popen(cmd, mode='r', buffering=-1)
3919+
..function::popen(cmd, mode='r', buffering=-1, encoding=None)
39203920

39213921
Open a pipe to or from command *cmd*.
39223922
The return value is an open file object
39233923
connected to the pipe, which can be read or written depending on whether *mode*
3924-
is ``'r'`` (default) or ``'w'``. The *buffering* argument has the same meaning as
3924+
is ``'r'`` (default) or ``'w'``.
3925+
The *buffering* and *encoding* arguments have the same meaning as
39253926
the corresponding argument to the built-in:func:`open` function. The
39263927
returned file object reads or writes text strings rather than bytes.
39273928

@@ -3944,6 +3945,9 @@ written in Python, such as a mail server's external command delivery program.
39443945
documentation for more powerful ways to manage and communicate with
39453946
subprocesses.
39463947

3948+
..versionchanged::3.11
3949+
Added the *encoding* parameter.
3950+
39473951

39483952
..function::posix_spawn(path, argv, env, *, file_actions=None, \
39493953
setpgroup=None, resetids=False, setsid=False, setsigmask=(), \

‎Lib/os.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -974,14 +974,15 @@ def spawnlpe(mode, file, *args):
974974
# command in a shell can't be supported.
975975
ifsys.platform!='vxworks':
976976
# Supply os.popen()
977-
defpopen(cmd,mode="r",buffering=-1):
977+
defpopen(cmd,mode="r",buffering=-1,encoding=None):
978978
ifnotisinstance(cmd,str):
979979
raiseTypeError("invalid cmd type (%s, expected string)"%type(cmd))
980980
ifmodenotin ("r","w"):
981981
raiseValueError("invalid mode %r"%mode)
982982
ifbuffering==0orbufferingisNone:
983983
raiseValueError("popen() does not support unbuffered streams")
984984
importsubprocess,io
985+
encoding=io.text_encoding(encoding)
985986
ifmode=="r":
986987
proc=subprocess.Popen(cmd,
987988
shell=True,text=True,
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add the *encoding* parameter to:func:`os.popen`.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp