相关疑难解决方法(0)

如何将OpenDocument电子表格转换为pandas DataFrame?

Python库可以读取Excel电子表格并将它们转换为pandas.DataFramewith pandas.read_excel(file)命令.在引擎盖下,它使用不支持 ods文件的xlrd库.

是否有相当于pandas.read_excelods文件?如果没有,我如何为Open Document Formatted电子表格(ods文件)做同样的事情?LibreOffice和OpenOffice使用ODF.

python opendocument dataframe libreoffice pandas

37
推荐指数
6
解决办法
2万
查看次数

启动包含管道命令的子进程时发现文件未找到错误

我需要date | grep -o -w '"+tz+"'' | wc -w在我的localhost上使用Python 运行命令 .我正在使用subprocess相同的模块,并使用check_output我需要捕获输出相同的方法.

但是它给我一个错误:

Traceback (most recent call last):
  File "test.py", line 47, in <module>
    check_timezone()
  File "test.py", line 40, in check_timezone
    count = subprocess.check_output(command)
  File "/usr/lib/python2.7/subprocess.py", line 537, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception-
OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

请帮助我哪里出错了.我是python的新手

python shell subprocess pipe

36
推荐指数
3
解决办法
4万
查看次数

Python的subprocess.call和subprocess.run之间有什么区别

我一直试图了解一段时间,现在subprocess.call和之间的区别是什么subprocess.run.我知道最后一个是Python 3.5上的新内容,两者都基于subprocess.Popen,但我还不能理解其中的差异.

python subprocess

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

如何在Python脚本中运行bash命令

我试图在bash脚本中运行Python和bash命令.在bash脚本中,我想执行Python循环包含的一些bash命令:

#!/bin/bash

python << END
for i in range(1000):
    #execute? some bash command such as echoing i
END
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python bash

22
推荐指数
2
解决办法
9万
查看次数

什么是args参数的subprocess.Popen最大长度?

我正在使用子进程模块中的Popen函数来执行命令行工具:

subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
Run Code Online (Sandbox Code Playgroud)

我正在使用的工具会获取一个然后处理的文件列表.在某些情况下,此文件列表可能会很长.有没有办法找到args参数的最大长度?有大量文件传递给该工具,我收到以下错误:

Traceback (most recent call last):
  File "dump_output_sopuids.py", line 68, in <module>
    uid_map = create_sopuid_to_path_dict_dcmdump(dicom_files)
  File "dump_output_sopuids.py", line 41, in create_sopuid_to_path_dict_dcmdump
    dcmdump_output = subprocess.Popen(cmd,stdout=subprocess.PIPE).communicate(0)[0]
  File "c:\python26\lib\subprocess.py", line 621, in __init__
    errread, errwrite)
  File "c:\python26\lib\subprocess.py", line 830, in _execute_child
    startupinfo)
WindowsError: [Error 206] The filename or extension is too long
Run Code Online (Sandbox Code Playgroud)

有没有找到这个最大长度的一般方法?我在msdn上发现了以下文章:命令提示符(Cmd.exe)命令行字符串限制但我不想在值中硬编码.我宁愿在运行时获取值以将命令分解为多个调用.

我在Windows XP 64上使用Python 2.6.

编辑:添加代码示例

paths = ['file1.dat','file2.dat',...,'fileX.dat']
cmd = ['process_file.exe','+p'] …
Run Code Online (Sandbox Code Playgroud)

python shell subprocess popen

14
推荐指数
2
解决办法
9890
查看次数

以Python方式执行Bash命令

我目前正在手动执行bash命令,方法是在python代码中输入shell.

如何用pythonic方式做到这一点?

我目前正在使用os.system函数执行命令,如;

os.system('sudo add-apt-repository ppa:ondrej/php')
os.system('sudo apt-get update')
os.system('sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0')
os.system('sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart')
Run Code Online (Sandbox Code Playgroud)

python bash

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

子流程中的多个管道

我试图在ruffus管道中使用Sailfish,它将多个fastq文件作为参数.我在python中使用子进程模块执行Sailfish,但是<()在子进程中调用即使在我设置时也不起作用shell=True.

这是我想用python执行的命令:

sailfish quant [options] -1 <(cat sample1a.fastq sample1b.fastq) -2 <(cat sample2a.fastq sample2b.fastq) -o [output_file]
Run Code Online (Sandbox Code Playgroud)

或(最好):

sailfish quant [options] -1 <(gunzip sample1a.fastq.gz sample1b.fastq.gz) -2 <(gunzip sample2a.fastq.gz sample2b.fastq.gz) -o [output_file]
Run Code Online (Sandbox Code Playgroud)

概括:

someprogram <(someprocess) <(someprocess)
Run Code Online (Sandbox Code Playgroud)

我将如何在python中执行此操作?子流程是正确的方法吗?

python subprocess pipe named-pipes

7
推荐指数
1
解决办法
2704
查看次数

运行 Shutit 的 Cloud Run Flask API 容器进入睡眠循环

这个问题最近出现了,之前健康的容器现在在创建 shutdown 会话时进入睡眠循环。该问题仅发生在 Cloud Run 上,而不是本地。

最小可重现代码:

requirements.txt

Flask==2.0.1
gunicorn==20.1.0
shutit
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM python:3.9

# Allow statements and log messages to immediately appear in the Cloud Run logs
ENV PYTHONUNBUFFERED True

COPY requirements.txt ./
RUN pip install -r requirements.txt

# Copy local code to the container image.
ENV APP_HOME /myapp
WORKDIR $APP_HOME
COPY . ./

CMD exec gunicorn \
 --bind :$PORT \
 --worker-class "sync" \
 --workers 1 \
 --threads 1 \
 --timeout 0 \
 main:app
Run Code Online (Sandbox Code Playgroud)

main.py

Flask==2.0.1
gunicorn==20.1.0
shutit
Run Code Online (Sandbox Code Playgroud)

cloudbuild.yaml …

python flask docker google-cloud-platform google-cloud-run

6
推荐指数
1
解决办法
961
查看次数

在 python 中使用 cairosvg 模块时可以指定缩放吗

cairosvg 的命令行版本允许缩放。这是帮助函数的输出:

cairosvg -h
usage: cairosvg [-h] [-v] [-f {pdf,png,ps,svg}] [-d DPI] [-W WIDTH]
            [-H HEIGHT] [-s SCALE] [-u] [-o OUTPUT]
            input

CairoSVG - A simple SVG converter based on Cairo.

positional arguments:
   input                 input filename or URL

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program\'s version number and exit
  -f {pdf,png,ps,svg}, --format {pdf,png,ps,svg}
                        output format
  -d DPI, --dpi DPI     ratio between 1 inch and 1 pixel
  -W WIDTH, --width WIDTH
                        width of the …
Run Code Online (Sandbox Code Playgroud)

python svg png cairo

5
推荐指数
2
解决办法
5780
查看次数

如何从 Flask 应用程序执行 Shell 脚本

我已经创建并部署了一个带有 Apache2 服务器 WSGI 的 Flask 应用程序,现在想要从应用程序运行 .sh 脚本。但是,从 python 代码调用,它不会执行。

这是 test.sh:

#!/bin/bash
echo "hi from shell script"
Run Code Online (Sandbox Code Playgroud)

这是我的 python flask 应用程序代码 index.py(在打开应用程序时运行)但没有打印或执行任何内容:

import subprocess
subprocess.call('/var/www/FlaskApp/FlaskApp/scripts/test.sh')
Run Code Online (Sandbox Code Playgroud)

为了检查我的代码中没有错误,我检查了烧瓶错误日志,没有错误。此外,我创建了一个名为 test_shell_script.py 的脚本,使用与上面相同的 python 代码(但不是flask应用程序代码),它运行得很好,如下所示:

# test_shell_script.py
import subprocess
subprocess.call('/var/www/FlaskApp/FlaskApp/scripts/test.sh')
Run Code Online (Sandbox Code Playgroud)

然后用 python 运行它: python3 /var/www/FlaskApp/FlaskApp/test_shell_script.py

hi from shell script
Run Code Online (Sandbox Code Playgroud)

我也确实更改了权限:

-rwxr-xr-x 1 root root 364 Nov 19 17:48 ../scripts/test.sh
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么不允许我的 Flask 应用程序从 python 代码运行 shell 命令?

python bash shell flask

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