我的问题:我有一个 Python 程序,用户使用sudo. 有时我必须得到用户的家,我只能知道它的名字才能做到这一点:
import pwd
pwd.getpwnam(username)
Run Code Online (Sandbox Code Playgroud)
那么:我怎样才能获得启动该程序的用户的姓名?
有谁知道一个概述可以记录默认情况下哪些(最近的)UNIX 发行版 Python 可用,即默认安装的一部分?
PS:在问题移到这里之前,来自 StackOverflow 的答案:
我喜欢grep -v。我用它所有的时间。但我也在用 python 做一些文本处理,我缺少一件至关重要的事情。
通常,我grep -v习惯从文本中去除无关的东西。
例如,
$ grep -v '[a-z]'
# (I manually review this output to confirm that I don't want those lines)
$ grep '[a-z]' > linesiwanted
Run Code Online (Sandbox Code Playgroud)
但是如何在 Python 中匹配正则表达式的补码?例如,\w?
在 Debian 8 jessie 上,我删除了 python:
perry@perry:~$ sudo apt-get remove python
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package 'python2.7' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 35 not upgraded.
Run Code Online (Sandbox Code Playgroud)
但不知何故,我仍然可以从终端启动 python。
perry@perry:~$ python
Python 2.7.9 (default, Apr 29 2015, 18:34:06)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Run Code Online (Sandbox Code Playgroud)
我没有从源代码或任何其他地方安装它,但 apt。这怎么可能,我怎样才能完全删除 python?
好的,所以我在我的 anaconda 环境中,我运行了 which python。我得到
/home/comp/anaconda3/envs/env1/bin/python
Run Code Online (Sandbox Code Playgroud)
现在,如果我启动 tmux,然后运行 source activate env1,然后运行哪个 python,我会得到
/home/comp/anaconda3/bin/python
Run Code Online (Sandbox Code Playgroud)
即使我确实激活了我的环境。如何让 anaconda 在 tmux 中看到相同的路径?
假设我有一堆照片,所有照片都有正确的 EXIF 信息,并且照片是随机命名的(因为我遇到了问题)。我有一个名为的小程序jhead,它给了我以下输出:
$ jhead IMG_9563.JPG
File name : IMG_9563.JPG
File size : 638908 bytes
File date : 2011:02:03 20:25:09
Camera make : Canon
Camera model : Canon PowerShot SX210 IS
Date/Time : 2011:02:03 20:20:24
Resolution : 1500 x 2000
Flash used : Yes (manual)
Focal length : 5.0mm (35mm equivalent: 29mm)
CCD width : 6.17mm
Exposure time: 0.0080 s (1/125)
Aperture : f/3.1
Focus dist. : 0.29m
ISO equiv. : 125
Exposure bias: -1.67
Whitebalance : Manual …Run Code Online (Sandbox Code Playgroud) 当我用 pip 安装这个“Taurus Blazemeter 'bzt'”程序时,它最终被安装到~/.local/bin 文件夹中。
mkdir ~/bzt && cd ~/bzt
sudo apt-get install python default-jre-headless python-tk python-pip python-dev libxml2-dev libxslt-dev zlib1g-dev
sudo pip install bzt
Run Code Online (Sandbox Code Playgroud)
有谁知道这个~/.local文件夹的用途以及为什么会安装这样的 Python 程序?
在我新安装的 CentOS 7.5 的终端中使用sudo iotop(latest version 0.6-2.el7) 时,我收到以下错误消息:
Traceback (most recent call last):
File "/sbin/iotop", line 17, in <module>
main()
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 620, in main
main_loop()
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 610, in <lambda>
main_loop = lambda: run_iotop(options)
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 508, in run_iotop
return curses.wrapper(run_iotop_window, options)
File "/usr/lib64/python2.7/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 501, in run_iotop_window
ui.run()
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 155, in run
self.process_list.duration)
File "/usr/lib/python2.7/site-packages/iotop/ui.py", line 434, in refresh_display
lines …Run Code Online (Sandbox Code Playgroud) 我想通过简单地输入script从终端调用 python 脚本script.py。这可能吗?如果是这样,如何?
我知道我可以通过在脚本顶部添加#!/usr/bin/env python来避免输入python script.py,但我仍然必须添加后缀.py才能运行脚本。