相关疑难解决方法(0)

在Python中调用外部命令

如何在Python脚本中调用外部命令(就像我在Unix shell或Windows命令提示符下键入它一样)?

python shell terminal command subprocess

4553
推荐指数
57
解决办法
325万
查看次数

如何从Python程序中从命令行获取数据?

我想从python脚本中运行命令行程序并获取输出.

如何获取foo显示的信息,以便我可以在脚本中使用它?

例如,我foo file1从命令行调用它打印出来

Size: 3KB
Name: file1.txt
Other stuff: blah
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到类似的文件名filename = os.system('foo file1')

python command-line pipe

24
推荐指数
2
解决办法
3万
查看次数

python作为"批处理"脚本(即从python运行命令)

我在Windows环境(我的笔记本电脑!)工作,我需要一些运行其他程序的脚本,就像一个Windows批处理文件.

我如何从python运行命令,使程序运行时,将替换脚本?该程序是交互式的(例如,同步)并保持打印行并始终要求用户输入.

因此,仅运行程序并打印输出是不够的.程序必须接管脚本的输入/输出,非常类似于从.bat文件运行命令.

我试过os.execl,但它一直告诉我"无效的参数",而且,它没有找到程序名称(不搜索PATH变量); 我必须给它完整的路径..?!

基本上,在批处理脚本中我可以写:unison profile

如何在python中实现相同的效果?

编辑:

我发现它可以完成,os.system( ... )因为我无法接受我自己的答案,我正在结束这个问题.


编辑:这应该是一个评论,但当我发布它我没有多少积分.

谢谢Claudiu,这几乎是我想要的,除了一点点:我希望函数在程序退出时结束,但是当我一致地尝试它时,它不会将控制返回到python脚本,而是返回到windows命令行环境

>>> os.execlp("unison")

C:\>Usage: unison [options]
    or unison root1 root2 [options]
    or unison profilename [options]

For a list of options, type "unison -help".
For a tutorial on basic usage, type "unison -doc tutorial".
For other documentation, type "unison -doc topics".

C:\>
C:\>
C:\>
Run Code Online (Sandbox Code Playgroud)

怎么绕过这个?

python scripting batch-file

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

如何从python中提供命令行命令?

我从命令行获得了一系列命令,我称之为某些实用程序.特别:

root@beaglebone:~# canconfig can0 bitrate 50000 ctrlmode triple-sampling on loopback on
root@beaglebone:~# cansend can0 -i 0x10 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88
root@beaglebone:~# cansequence can0 -p
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚(或找到明确的文档)是我如何写一个python脚本来发送这些命令.我之前没有使用过os模块,但怀疑也许这就是我应该看的地方?

python linux angstrom-linux

10
推荐指数
1
解决办法
2423
查看次数

在python命令行输入python命令

这个标题可能令人困惑,但基本上我希望能够做到以下几点:

import subprocess

subprocess.call(["python"])
subprocess.call(["import", "antigravity"])
subprocess.check_call(["print","\"This is so meta\" "])
subprocess.call(["exit()"])
Run Code Online (Sandbox Code Playgroud)

预期的行为是它会打开一个 python 终端会话,然后打开 xkcd 漫画 353,在命令行中打印 'this is so meta',最后退出 python 命令行。

基本上,我希望能够打开一个 python 会话,并从我的 python 脚本中运行命令。我还希望能够检查我在脚本中运行的命令的输出。这可能吗?如果是这样,我需要使用什么库?子进程会这样做吗?

python subprocess

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

Python:如何替换pdf中的文本

我有一个 pdf 文件,我想替换 pdf 文件中的一些文本并生成新的 pdf。我怎么能在python中做到这一点?我试过 reportlab ,reportlab 没有任何功能来搜索文本和替换它。我可以使用什么其他模块?

python pdf reportlab pypdf

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

如何使用python使用硬链接替换重复文件?

我是摄影师,做了很多备份。多年来,我发现自己拥有许多硬盘驱动器。现在,我购买了NAS,并使用rsync将所有图片复制到一个3TB的RAID 1上。根据我的脚本,其中大约1TB的文件是重复的。这是因为在删除笔记本电脑上的文件之前进行了多次备份,而且非常混乱。我的确在旧硬盘上备份了所有这些文件,但是如果我的脚本搞砸了,那将很痛苦。您能否看一下我重复的查找程序脚本,并告诉我您是否认为我可以运行它?我在测试文件夹上进行了尝试,看起来还可以,但是我不想在NAS上弄乱东西。

该脚本在三个文件中包含三个步骤。在第一部分中,我将找到所有图像和元数据文件,并将它们作为大小的文件放入货架数据库(datenbank)中。

import os
import shelve

datenbank = shelve.open(os.path.join(os.path.dirname(__file__),"shelve_step1"), flag='c', protocol=None, writeback=False)

#path_to_search = os.path.join(os.path.dirname(__file__),"test")
path_to_search = "/volume1/backup_2tb_wd/"
file_exts = ["xmp", "jpg", "JPG", "XMP", "cr2", "CR2", "PNG", "png", "tiff", "TIFF"]
walker = os.walk(path_to_search)

counter = 0

for dirpath, dirnames, filenames in walker:
  if filenames:
    for filename in filenames:
      counter += 1
      print str(counter)
      for file_ext in file_exts:
        if file_ext in filename:
          filepath = os.path.join(dirpath, filename)
          filesize = str(os.path.getsize(filepath))
          if not filesize in datenbank:
            datenbank[filesize] = []
          tmp = datenbank[filesize] …
Run Code Online (Sandbox Code Playgroud)

python linux hardlink duplicates nas

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

在python中启动一些东西

好的,你可以看到我的问题,我是python的新手.我正在构建一个python脚本,基本上我希望它执行这一行


/Library/Frameworks/GDAL.framework/Programs/ogr2ogr -f "GeoJSON" output.json input.shp

我如何让python执行此操作,就好像我在终端中键入它一样?
谢谢

python

-5
推荐指数
1
解决办法
500
查看次数