相关疑难解决方法(0)

将字节转换为字符串?

我正在使用此代码从外部程序获取标准输出:

>>> from subprocess import *
>>> command_stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0]
Run Code Online (Sandbox Code Playgroud)

communic()方法返回一个字节数组:

>>> command_stdout
b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2\n'
Run Code Online (Sandbox Code Playgroud)

但是,我想将输出作为普通的Python字符串.所以我可以这样打印:

>>> print(command_stdout)
-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1
-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2
Run Code Online (Sandbox Code Playgroud)

我认为这是binascii.b2a_qp()方法的用途,但是当我尝试它时,我又得到了相同的字节数组:

>>> binascii.b2a_qp(command_stdout)
b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2\n'
Run Code Online (Sandbox Code Playgroud)

有人知道如何将字节值转换回字符串吗?我的意思是,使用"电池"而不是手动操作.而且我希望它能用于Python 3.

python string python-3.x

1968
推荐指数
18
解决办法
203万
查看次数

运行shell命令并捕获输出

我想编写一个函数来执行shell命令并将其输出作为字符串返回,无论是错误还是成功消息.我只想获得与命令行相同的结果.

什么是代码示例会做这样的事情?

例如:

def run_command(cmd):
    # ??????

print run_command('mysqladmin create test -uroot -pmysqladmin12')
# Should output something like:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Run Code Online (Sandbox Code Playgroud)

python shell subprocess

816
推荐指数
15
解决办法
96万
查看次数

如何检查python模块的版本?

我刚安装的Python模块:constructstatlibsetuptools这样的:

# Install setuptools to be able to download the following
sudo apt-get install python-setuptools

# Install statlib for lightweight statistical tools
sudo easy_install statlib

# Install construct for packing/unpacking binary data
sudo easy_install construct
Run Code Online (Sandbox Code Playgroud)

我希望能够(以编程方式)检查他们的版本.是否python --version可以从命令行运行?

我的python版本是2.7.3.

python

585
推荐指数
20
解决办法
80万
查看次数

Shell脚本:从shell脚本中执行python程序

我试过谷歌搜索答案,但没有运气.

我需要使用我的工作超级计算机服务器,但是为了运行我的python脚本,它必须通过shell脚本执行.

例如,我想job.sh执行python_script.py

如何实现这一目标?

python shell

114
推荐指数
6
解决办法
41万
查看次数

相当于Python中的Bash反引号

Python中Ruby和Perl中的反引号相当于什么?也就是说,在Ruby中我可以这样做:

foo = `cat /tmp/baz`
Run Code Online (Sandbox Code Playgroud)

Python中的等效语句是什么样的?我已经尝试os.system("cat /tmp/baz")但是将结果置于标准输出并返回给我该操作的错误代码.

python backticks

79
推荐指数
6
解决办法
4万
查看次数

Python:运行os.system后如何获取stdout?

我希望stdout在运行os.system调用后获取变量.

让我们以此行为例:

batcmd="dir"
result = os.system(batcmd)
Run Code Online (Sandbox Code Playgroud)

result将包含错误代码(stderr 0在Windows下或1在某些linux下用于上面的示例).

如何stdout在执行的命令中不使用重定向来获取上述命令?

python os.system stdout stderr python-2.7

79
推荐指数
6
解决办法
16万
查看次数

如何获取目录中的文件,包括所有子目录

我正在尝试获取目录中所有日志文件(.log)的列表,包括所有子目录.

python

51
推荐指数
4
解决办法
7万
查看次数

在python中,将system命令的输出作为字符串

在python中,我可以使用os或subprocess运行一些系统命令.问题是我无法将输出作为字符串.例如:

>>> tmp = os.system("ls")
file1 file2
>>> tmp
0
Run Code Online (Sandbox Code Playgroud)

我有一个旧版本的子进程没有函数check_out,我更喜欢一个不需要更新该模块的解决方案,因为我的代码将运行在我没有完全管理员权限的服务器上.

这个问题似乎微不足道,但我找不到一个简单的解决方案

python shell command-line

27
推荐指数
1
解决办法
9万
查看次数

将变量的内容复制到剪贴板

我试图在python脚本中自动将变量的内容复制到剪贴板.因此,创建一个包含字符串的变量,我想将该字符串复制到剪贴板.

有没有办法用Pyclips或

os.system("echo '' | pbcopy")
Run Code Online (Sandbox Code Playgroud)

我已经尝试传递字符串应该去的变量,但这对我来说没有用.

python

7
推荐指数
3
解决办法
9162
查看次数

Python - 我正在尝试获取pwd的输出,而是获得退出状态

我正在尝试获得以下输出pwd:

#!python
import os
pwd = os.system("pwd")
print (pwd)
Run Code Online (Sandbox Code Playgroud)

它打印0,这是成功的退出状态而不是路径.我怎样才能获得这条路?

python

3
推荐指数
1
解决办法
3486
查看次数

当另一个python脚本运行时,如何停止我的python脚本?

我想知道如何在已经运行的时候停止当前的python脚本.

要清楚,我想用我自己的python脚本编写它.所以首先,在main方法中,它将检查我的python脚本是否已经运行.如果它正在运行,我想退出并显示错误消息.

目前我正在尝试此代码:

if os.system("ps ax | grep sample_python.py") == True:
     print "fail"
     exit(0)
else:
     print "pass"
Run Code Online (Sandbox Code Playgroud)

上面的代码看起来像是grepping python名称..但它总是转到else循环而不是进入if循环并退出..

因此,出于测试目的,我运行我的脚本,并在另一个终端上再次运行我的脚本.第一个脚本不会停止,但第二个python不会进入if循环打印出错误消息.

我怎样才能解决这个问题?


好吧,我发现了一个愚蠢的事情,我想看看是否有人可以帮助我绕过它..所以我的观点是杀死刚开始的python,如果另一个python正在运行..但是愚蠢的事情是..因为我我正在运行我的python并在这个python中运行一个检查编码..它将一直退出..因为我一启动python PID将被创建并将运行...

所以.. python启动 - > pid创建并运行 - >检查python是否正在运行 - >是的python正在运行 - >退出.

我想看看是否有办法进行python启动 - >检查python是否已经运行 - >如果正在运行则杀死当前的python而不是正在运行的python.

python unix linux

2
推荐指数
1
解决办法
2847
查看次数

Python // Pandas - 从 API 获取 json 并转换为数据帧

我正在使用此 API 来获取公司数据:https ://github.com/vkruoso/receita-tools

在这里你可以看到注册表是如何来到我这里的(看起来像一个json结构):https ://www.receitaws.com.br/v1/cnpj/27865757000102

我可以使用以下命令下载它:

cadastro = os.system("curl -X GET https://www.receitaws.com.br/v1/cnpj/27865757000102"
Run Code Online (Sandbox Code Playgroud)

如果我运行type(cadastro)它就会出现class 'int'在我面前。我想把它变成一个数据框。我怎么能这么做呢?

python json get pandas

2
推荐指数
1
解决办法
3243
查看次数