- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
原始问题 - MCVE
以下脚本应该使用 chrome headless 打印成 pdf(我运行的是 windows 10 和 python 3.6):
import subprocess
from tempfile import NamedTemporaryFile
output = NamedTemporaryFile()
CHROME_PATH=r'"C:\Program Files (x86)\Google\Chrome\Application\chrome"'
chrome_args=[CHROME_PATH,
'--headless',
r'--print-to-pdf="{}"'.format(output.name),
'--disable-gpu',
'https://www.google.com/',]
subprocess.call(chrome_args,shell=True)
但是生成的文件只是空的。
尝试调试
为了弄清楚发生了什么,我将脚本修改为以下内容:
import subprocess
CHROME_PATH=r'"C:\Program Files (x86)\Google\Chrome\Application\chrome"'
chrome_args=[CHROME_PATH,
'--headless',
r'--print-to-pdf="c:\Users\timmc\Documents\output.pdf"',
'--disable-gpu',
'https://www.google.com/',]
print(r" ".join(chrome_args)) #For debuging
subprocess.call(chrome_args,shell=True)
在这种情况下,只是没有在预期位置生成文件。打印结果为:
"C:\Program Files (x86)\Google\Chrome\Application\chrome" --headless --print-to-pdf="c:\Users\timmc\Documents\output.pdf" --disable-gpu https://www.google.com/
如果我运行以下命令(创建原始字符串文字),一切都会按预期工作并生成文件。
subprocess.call(r'"C:\Program Files (x86)\Google\Chrome\Application\chrome" --headless --print-to-pdf="c:\Users\timmc\Documents\output.pdf" --disable-gpu https://www.google.com/', shell=True)
在 stack-overflow 上四处搜索并尝试了一些东西后,我仍然无法让原始脚本运行。有任何想法吗?
部分问题是我似乎无法从子进程调用中获得任何有意义的调试。对此的任何帮助也将不胜感激。
最佳答案
我会尝试回答而不是一次又一次地发表评论,但显然我无法对此进行测试。
问题主要是双引号 & shell=True
的强制。将引用留给 subprocess
(也在 CHROME_PATH
中)并正确拆分参数通常有效。我在这里用这种技术解决了很多问题。
由于您的评论表明它没有,并且您找到了解决方法,所以让我建议改进此解决方法:在有效的命令行中注入(inject)输出文件名:
subprocess.call(r'"C:\Program Files (x86)\Google\Chrome\Application\chrome" --headless --print-to-pdf="{}" --disable-gpu https://www.google.com/'.format(output.name), shell=True)
我不满意,但它有很好的工作机会。
关于python - 在 Windows 上打印到 NamedTemporaryFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47575979/
我在用 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 程序生成数千个包含图形的文件,这
我是一名优秀的程序员,十分优秀!