第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

對于新的linux用戶,在python中獲取登錄名的簡單方法是什么?

對于新的linux用戶,在python中獲取登錄名的簡單方法是什么?

慕桂英546537 2021-10-10 14:42:39
我在樹莓派 3b 上使用 ubuntu mate。有沒有一種簡單的方法來做類似的事情:import osname = os.getlogin()print(name)(從窗戶)?當(dāng)我嘗試在 linux 上使用它時(shí),出現(xiàn)此錯(cuò)誤:Traceback (most recent call last):  File "(this is a less than sign)pyshell#3(this is a greater than sign)", line 1, in <module>print(os.getlogin())OSError: [Errno 25] Inappropriate ioctl for device
查看完整描述

2 回答

?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

您需要定義什么是“登錄名”(以及為什么需要它)。在細(xì)節(jié)中,它并不是那么簡單(我不確定你是否完全理解它到底是什么,即使是在我不知道的 Windows 上)。該通知os.getlogin被記載為使用控制終端(進(jìn)一步了解這些中的TTY揭秘, PTY(7) ,TTY(4) ),并且在一些情況下(例如一個(gè)的crontab(5)工作,遠(yuǎn)程命令開始通ssh等..) 你沒有。


您可以使用一些環(huán)境變量。請參閱environ(7)和getenv(3)(并找到它的 Python 等效項(xiàng),可能是os.environ)。在大多數(shù)情況下(在一些交互式會(huì)話中),USER和LOGNAME環(huán)境變量都會(huì)給你一些“登錄名”。在病理情況下,它們可能丟失或不同(或不正確,想想setuid程序)。Python有g(shù)etpass.getuser


然后,閱讀有關(guān)憑據(jù)(7) 的信息。然后您就知道每個(gè)進(jìn)程都有其 uid(請參閱getuid(2)和geteuid)。該uid是一個(gè)數(shù)字(Windows 上可能的等價(jià)物是SID)。從該號碼中,您可能會(huì)在 Python pwd.getpwuid 中使用getpwuid(3)獲得“登錄名”


在非常罕見的病理情況下,你甚至可以有一些UID其中有沒有“登錄名”(這可能,例如,發(fā)生與舊工藝的UID你已經(jīng)從你刪除的運(yùn)行過程中/etc/passwd,看到的passwd(5) )


在病理情況下,USER&LOGNAME環(huán)境變量和getuid/geteuid后跟getpwuid可以給出不同的“登錄名”,然后您必須決定您想要哪個(gè)(這相當(dāng)于準(zhǔn)確定義“登錄名”對您意味著什么)。


您應(yīng)該閱讀ALP以了解有關(guān) Linux 編程的更多信息,并將從那里獲得的知識(ALP 從 C API 的角度解釋事物)應(yīng)用到 Python。


如果您需要主目錄,通常的做法是使用HOME環(huán)境變量(但同樣,您可能會(huì)遇到未設(shè)置或錯(cuò)誤的病理情況;在這種極少數(shù)情況下,您需要定義您真正想要的內(nèi)容。)。


附注。在 Unix 系統(tǒng)上,我不明白為什么你需要一個(gè)登錄名。常見的習(xí)慣用法是根據(jù)uid進(jìn)行推理。


查看完整回答
反對 回復(fù) 2021-10-10
?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

os.environ是一個(gè)字典,其中包含各種類型的環(huán)境變量。在這里USERNAME,LOGNAME,USER等是系統(tǒng)狀態(tài)的環(huán)境變量。所以根據(jù)操作系統(tǒng)和當(dāng)前用戶的類型,我們可以找到那些環(huán)境變量。當(dāng)我們以普通用戶身份登錄 時(shí)Ubuntu,我們擁有 all USERNAME, LOGNAMEandUSER在系統(tǒng)狀態(tài)環(huán)境變量中,但是當(dāng)我們以root用戶身份登錄時(shí),我們擁有USER和LOGNAME系統(tǒng)狀態(tài)環(huán)境變量。對于普通用戶,請查看下面的代碼Ubuntu。


import os

# From os.environ, you can read USERNAME and LOGNAME 

os.environ['USERNAME']

os.environ['LOGNAME']


查看完整回答
反對 回復(fù) 2021-10-10
  • 2 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號