首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向os.system传递多个命令

向os.system传递多个命令
EN

Stack Overflow用户
提问于 2022-05-25 23:34:09
回答 3查看 159关注 0票数 -1

我正在处理一个函数,该函数生成一个随机文件,然后打印它;目前,我有以下代码:

代码语言:javascript
复制
    import os
    import random

    def randomfile(path):
        files = os.listdir(path)
        index = random.randrange(0, len(files))
        return files[index]

    pick = randomfile("~/me/Desktop/files")

    os.system("cat",pick) # Here i want to execute cat with the random file generated

基本上,我只想打印生成的文件,如何将它传递给os.system?

EN

回答 3

Stack Overflow用户

发布于 2022-05-25 23:42:27

@Barmar感谢,伙计,我已经使用了子进程subprocess.run(["cat", pick]),也print (open(pick).read()),它为我工作,再次感谢

票数 0
EN

Stack Overflow用户

发布于 2022-05-25 23:45:43

您可以将其全部添加到os.system中,如os.system('cat' + pick)。另一个选项是使用子进程模块并运行subprocess.check_output("cat", pick)subprocess.check_output确实会返回一个值,因此您需要将其打印到屏幕上,或者根据您想要使用它做什么来对返回值进行一些操作。

票数 -1
EN

Stack Overflow用户

发布于 2022-05-26 00:00:23

可以使用for-循环执行数组中的所有命令:

代码语言:javascript
复制
array = ['cat', 'pick']
for command in array:
os.system(command)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72385156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档