2301_81378658 2024-08-05 15:19 采纳率: 0%
浏览 5
已结题

subprocess在hscript可以输入之前传递参数

想做一个简单的小程序实现读取项目的节点然后将文件和节点写入txt文件,最后用subprocess打开hscript并将txt文件的路径作为参数传入hscrip
但是subprocess好像在hscript可以输入之前将参数传递进去了
代码部分

 def Pass_parameters(self):
        a='C:/Users/admin/Desktop/Background/renderList.txt'
        subprocess.run(['C:/Program Files/Side Effects Software/Houdini 19.5.368/bin/hscript.exe',a])

运行以后产生的报错

img

随后将代码中的参数部分删除,只用subprocess来启动hscript,随后将路径输入进去

img

成功运行。

  • 写回答

3条回答 默认 最新

  • 专家-皆知 2024-08-05 15:26
    关注

    引自免费微信小程序:皆我百晓生

    从你的描述来看,问题可能出在subprocess.run调用hscript.exe时,命令行参数的格式不正确。Houdini的hscript在接收命令时,期望的是一个个独立的指令,而不是像你在文本文件中那样包含了命令和参数的完整字符串。你需要确保传递给subprocess.run的每个元素都是hscript可以单独识别的命令或参数。

    修改你的代码,尝试直接从文件读取每一行命令,并且确保以正确的方式传递给subprocess.run。这里是一个修改后的示例代码:

    def Pass_parameters(self):
        with open('renderList.txt', 'r') as file:
            for line in file:
                # 去除行尾的换行符并根据hscript的命令格式进行处理
                command_parts = line.strip().split(' ', 1)
                
                # 确保至少有一个命令部分
                if len(command_parts) >= 1:
                    # hscript命令通常以'/'开头,如果没有则手动添加
                    if not command_parts[0].startswith('/'):
                        command_parts[0] = '/' + command_parts[0]
                        
                    # 如果有参数,则保持原有结构,否则只传递命令
                    args = command_parts[1:] if len(command_parts) > 1 else []
                    full_command = [command_parts[0]] + args
                    
                    # 执行命令
                    subprocess.run(['C:/Program Files/Side Effects Software/Houdini 19.5.368/bin/hscript.exe'] + full_command)
    

    这个修改后的版本会读取每行内容,假设每行都是一个hscript命令(可能带参数)。它首先分割命令和可能的参数,确保命令以/开头(这是hscript的标准命令格式),然后将处理后的命令和参数列表传递给subprocess.run。这样应该能解决你遇到的问题,让hscript正确识别并执行每一条指令。

    如果仍然遇到问题,检查renderList.txt文件中的命令是否格式正确,确保没有额外的空格、换行或其他字符干扰命令的解析。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月5日
  • 修改了问题 8月5日
  • 修改了问题 8月5日
  • 创建了问题 8月5日

悬赏问题

  • ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥20 wpf datagrid单元闪烁效果失灵