- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有以下(简化的)代码:
with NamedTemporaryFile() as f:
f.write(zip_data)
f.flush()
subprocess.call("/usr/bin/7z x %s" % f.name)
它死于以下错误:
Traceback (most recent call last):
File "decrypt_resource.py", line 70, in <module>
unpack(sys.argv[2])
File "decrypt_resource.py", line 28, in unpack
print(subprocess.check_output(cmd))
File "/usr/lib/python2.7/subprocess.py", line 568, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1308, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
但是,如果我使用 NamedTemporaryFile(delete=False)
然后打印并执行命令,它就可以工作。这里有什么问题吗?
我的系统是带有 3.9.5-1-ARCH
内核的 ArchLinux。
最佳答案
您错误地使用了 subprocess.call()
。
传入参数列表:
subprocess.call(["/usr/bin/7z", "x", f.name])
参数不由 shell 处理,也不会像 shell 那样解析出来。这是一件好事,因为它可以防止不受信任的命令行参数引起的安全问题。
您的其他选择包括使用 shlex.split()
为你做空格分割,或者,作为最后的手段,告诉 subprocess
使用带有 shell=True
标志的 shell 来执行你的命令。查看big warning on the subprocess
documentation关于启用 shell。
关于python - 无法从命令行访问 NamedTemporaryFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213869/
我在用 Python 写入 NamedTemporaryFile 然后读回时遇到问题。该函数通过 tftpy 将文件下载到临时文件,读取该文件,对内容进行哈希处理,然后将哈希摘要与原始文件进行比较。有
我有以下(简化的)代码: with NamedTemporaryFile() as f: f.write(zip_data) f.flush() subprocess.call
我想加载临时文件进行更改或者只是能够将它上传到某个地方,当我尝试这样做时 - 它会抛出一个错误,如下所示 我已将权限设置为 w+ - 理想情况下应该允许我读写,不确定我在这里遗漏了什么 - 任何帮助将
我正在尝试将文件下载到临时文件并将该文件发布到另一项服务。我尝试使用 NamedTemporaryFile 进行此操作,但我被迫关闭文件并重新打开它。 def main(): validate
我正在尝试编写一系列写入临时文件的函数,然后对写入的文件进行处理。我试图了解文件的处理方式。 我想在摘要中做的是: def create_function(inputs): # create
这是对 this question 的后续跟进关于使用 NamedTemporaryFile() 我有一个创建和写入临时文件的函数。然后我想在另一个函数中使用该文件,该函数调用使用该文件的终端命令(该
创建此类文件后如何更改 NamedTemporaryFile 的删除标志? 为什么?虽然大多数时候我不需要保留临时文件,但如果我从代码内部检测到错误,我想保留它们以便能够分析它们。 最佳答案 对于现在
在 Python 2 中,创建临时文件并访问它很容易。然而,在 Python 3 中,情况似乎不再如此。我对如何获取使用 tempfile.NamedTemporaryFile() 创建的文件感到困惑
我正在编写一个 Python 脚本,该脚本需要创建大约 50 个不同的临时文件,这些文件在脚本执行过程中经常被附加并在最后合并。我确信 tempfile 模块可以满足我的需要,但我无法通过阅读文档来弄
原始问题 - MCVE 以下脚本应该使用 chrome headless 打印成 pdf(我运行的是 windows 10 和 python 3.6): import subprocess from
Python tempfile.NamedTemporaryFile 的这种用法是否安全(即避免了已弃用的 tempfile.mktemp 的安全问题)? def mktemp2(): """
Python 模块 tempfile 包含 NamedTemporaryFile 和 TemporaryFile。前者的文档说 Whether the name can be used to open
这是我创建的一个测试,用于重现我在使用时遇到的问题临时文件.NamedTemporaryFile()。问题是当我使用 tempfile 时我的 CSV 中的数据从文件末尾被截断。 当您运行此测试脚本时
我是 python2.6 编程的新手,我的目标是在 os 的临时目录中创建 .txt 或 .xls“临时文件”并向其中写入一些数据。然后从“临时文件”中读取数据,之后读取数据完成,从临时目录中删除“临
我正在 Ubuntu 16.04 下的 Python 3 中将一些内容写入 tempfile.NamedTemporaryFile。在某些情况下,我想在写入完成后将该文件复制到其他位置。使用以下代码重
我无法在最初创建 NamedTemporaryFile 后修改它的内容。 按照下面的示例,我从 URL 的内容(JSON 数据)创建了一个 NamedTemporaryFile。 然后,我的目标是重新
python docs for tempfile.NamedTemporaryFile说: Whether the name can be used to open the file a second
我想使用 tempfile.NamedTemporaryFile() 将一些内容写入其中,然后打开该文件。我写了以下代码: tf = tempfile.NamedTemporaryFile() tfN
通过搜索现有问题尚未找到解决方案,这里是: Python 的新手。尝试使用 tempfile 包创建临时文件。以下是因 ValueError 失败的代码行: (temp_file, self.buck
我正在编写一个 python3 程序,该程序生成一个文本文件,该文件使用 asciidoc 进行后处理以生成 html 和 pdf 格式的最终报告。 python 程序生成数千个包含图形的文件,这
我是一名优秀的程序员,十分优秀!