Trong bài viết này, chúng tôi sẽ thảo luận về cách lấy tên người dùng hiện tại trong Python.
Phương pháp 1: Sử dụng thư viện hệ điều hànhOS library
Phương thức GetLogin [] của thư viện hệ điều hành được sử dụng để lấy tên người dùng hiện tại.
Cú pháp: os.getLogin [] & nbsp;: os.getlogin[ ]
Để sử dụng chức năng này, chúng tôi cần nhập thư viện hệ điều hành trước.
Ví dụ 1: phương thức getLogin []getlogin[] method
Python3
Đầu ra:
'KRISHNA KARTHIKEYA'
Ví dụ 2: OS.Path.ExpandUser [] Phương thức & nbsp;expanduser[] method
Có một phương thức khác có sẵn trong thư viện HĐH có tên Path.Expanduser [] phương thức. Trong chức năng này, chúng ta cần vượt qua toán tử Tilde trong các trích dẫn đơn lẻ như một đối số.
Cú pháp: os.path.expanduser [] & nbsp; os.path.expanduser[ ]
Lưu ý: Trong phương pháp này, chúng ta cần chuyển toán toán tử Tilde làm đối số. In this method, we need to pass the tilde operator as an argument.
Python3
'C:\\Users\\KRISHNA KARTHIKEYA'1
'C:\\Users\\KRISHNA KARTHIKEYA'2
'C:\\Users\\KRISHNA KARTHIKEYA'3
'C:\\Users\\KRISHNA KARTHIKEYA'4
'C:\\Users\\KRISHNA KARTHIKEYA'5
Đầu ra:
'C:\\Users\\KRISHNA KARTHIKEYA'
Ví dụ 2: OS.Path.ExpandUser [] Phương thức & nbsp; environ.get[] method
Có một phương thức khác có sẵn trong thư viện HĐH có tên Path.Expanduser [] phương thức. Trong chức năng này, chúng ta cần vượt qua toán tử Tilde trong các trích dẫn đơn lẻ như một đối số.
Cú pháp: os.path.expanduser [] & nbsp;environ.get[ ” USERNAME” ]
Lưu ý: Trong phương pháp này, chúng ta cần chuyển toán toán tử Tilde làm đối số.
Python3
'C:\\Users\\KRISHNA KARTHIKEYA'1
'C:\\Users\\KRISHNA KARTHIKEYA'2
'C:\\Users\\KRISHNA KARTHIKEYA'8
'C:\\Users\\KRISHNA KARTHIKEYA'9
'C:\\Users\\KRISHNA KARTHIKEYA'5
Đầu ra:
'KRISHNA KARTHIKEYA'
Ví dụ 2: OS.Path.ExpandUser [] Phương thức & nbsp; getpass library
Có một phương thức khác có sẵn trong thư viện HĐH có tên Path.Expanduser [] phương thức. Trong chức năng này, chúng ta cần vượt qua toán tử Tilde trong các trích dẫn đơn lẻ như một đối số.
Cú pháp: os.path.expanduser [] & nbsp;: getpass.getuser[ ]
Lưu ý: Trong phương pháp này, chúng ta cần chuyển toán toán tử Tilde làm đối số.
Python3
'C:\\Users\\KRISHNA KARTHIKEYA'1
'C:\\Users\\KRISHNA KARTHIKEYA'2
'KRISHNA KARTHIKEYA'3
Đầu ra:
'KRISHNA KARTHIKEYA'
Ví dụ 2: OS.Path.ExpandUser [] Phương thức & nbsp;os and pwd modules
Có một phương thức khác có sẵn trong thư viện HĐH có tên Path.Expanduser [] phương thức. Trong chức năng này, chúng ta cần vượt qua toán tử Tilde trong các trích dẫn đơn lẻ như một đối số.
Cú pháp: os.path.expanduser [] & nbsp; getpwuid[ os.getuid[] ][0]
Lưu ý: Trong phương pháp này, chúng ta cần chuyển toán toán tử Tilde làm đối số.
'C:\\Users\\KRISHNA KARTHIKEYA'
1 'C:\\Users\\KRISHNA KARTHIKEYA'
2
Python3
'C:\\Users\\KRISHNA KARTHIKEYA'1
'C:\\Users\\KRISHNA KARTHIKEYA'2
Ví dụ 3: Phương thức Môi trường []
'KRISHNA KARTHIKEYA'8
'KRISHNA KARTHIKEYA'9
'KRISHNA KARTHIKEYA'0
Đầu ra:
'root'
Không có điều nào ở trên trong trường hợp của tôi [cuộn xuống giải pháp thực tế]. Vấn đề tôi gặp phải với tất cả các giải pháp là tên người dùng sai khi chạy các lệnh với
'KRISHNA KARTHIKEYA'1:
The problem I'm getting with all solutions is the wrong username when running commands with
'KRISHNA KARTHIKEYA'1:
'KRISHNA KARTHIKEYA'
2 Linh hồn:
$ python3
>>> import psutil
>>> psutil.Process[].username[]
'ubuntu' # OK!
$ sudo su
$ python3
>>> import psutil
>>> psutil.Process[].username[]
'root' # OK!
$ sudo python3
>>> import psutil
>>> psutil.Process[].username[]
'root' # WRONG, should be ubuntu!
- Giải pháp
'KRISHNA KARTHIKEYA'
3:
$ python3
>>> import getpass
>>> getpass.getuser[]
'ubuntu' # OK!
$ sudo su
$ python3
>>> import getpass
>>> getpass.getuser[]
'root' # OK!
$ sudo python3
>>> import getpass
>>> getpass.getuser[]
'root' # WRONG, should be ubuntu!
- Giải pháp
'KRISHNA KARTHIKEYA'
7 +'KRISHNA KARTHIKEYA'
5:
$ python3
>>> import os, pwd
>>> pwd.getpwuid[ os.getuid[] ][ 0 ]
'ubuntu' # OK!
$ sudo su
$ python3
>>> import os, pwd
>>> pwd.getpwuid[ os.getuid[] ][ 0 ]
'root' # OK!
$ sudo python3
>>> import getpass
>>> getpass.getuser[]
'root' # WRONG, should be ubuntu!
'KRISHNA KARTHIKEYA'
6 hoạt động khác một chút, nhưng vẫn sai:
$ python3
>>> import os
>>> os.getlogin[]
'ubuntu' # OK!
$ sudo su
$ python3
>>> import os
>>> os.getlogin[]
'ubuntu' # WRONG, should be root!
$ sudo python3
>>> import os
>>> os.getlogin[]
'ubuntu' # OK!
'KRISHNA KARTHIKEYA'
7 cho kết quả tương tự:
$ python3
>>> import os
>>> os.getenv['SUDO_USER', os.getenv['USER']]
'ubuntu' # OK!
$ sudo su
$ python3
>>> import os
>>> os.getenv['SUDO_USER', os.getenv['USER']]
'ubuntu' # WRONG, should be root!
$ sudo python3
>>> import os
>>> os.getenv['SUDO_USER', os.getenv['USER']]
'ubuntu' # OK!
Chuyển đổi
'KRISHNA KARTHIKEYA'8 và
'KRISHNA KARTHIKEYA'9 cho kết quả sai trong trường hợp
'root'0.
Giải pháp thực tế [không thể thực hiện]
Giải pháp là một chút khó khăn và dựa vào vị trí thư mục nhà gốc mặc định nhưng hoạt động cho tất cả các trường hợp:
'C:\\Users\\KRISHNA KARTHIKEYA'0