gpt4 book ai didi

python - Bash 命令不会在 Jupyter Notebook 中执行

转载 作者:行者123 更新时间:2023-11-28 20:31:29 25 4
gpt4 key购买 nike

我正在尝试从 Jupyter Notebook 内部执行 Bash 命令,该命令将随机数写入某些文件。我要发出的命令是

echo $(( RANDOM )) &> {output_files[i]}

其中 output_files 是输出文件名的 Python 列表。我不知道如何将 Python 变量 output_files[i] 成功放入 Bash 命令,因此我将整个命令创建为字符串并尝试通过笔记本执行它:

# Create a list of 5 filenames
output_files = [os.path.join(os.getcwd(), 'random-%s.txt' % i) for i in range (5)]

# Write random number to each file
for i in range (5):
command = "echo $(( RANDOM )) &> " + output_files[i]
print(command)
!{command}

当我尝试这个时,文件 ./random-0.txt 等被创建,但没有数字写入它们 - 它们是空的。但是,当我直接在终端中运行创建的命令时,它完全按预期工作。这些文件被创建并且每个文件包含一个随机数。 print(command) 行产生

echo $(( RANDOM )) &> /filepath/random-0.txt
0
echo $(( RANDOM )) &> /filepath/random-1.txt
echo $(( RANDOM )) &> /filepath/random-2.txt
echo $(( RANDOM )) &> /filepath/random-3.txt
echo $(( RANDOM )) &> /filepath/random-4.txt

针对此问题的网络搜索为 Stack Overflow 和博客上的几个类似问题提供了匹配项,但所有这些问题的结果要么是“Windows 上不存在 Bash 命令”,要么是“您可以使用 '!'”在 Jupyter 笔记本中执行 Bash 命令!”没有关于它如何工作的更多信息,因此我可以调试这样的问题。

我如何使它工作?

最佳答案

为什么不在 python 本身中完成所有事情?使用 random 模块的 randint() 函数生成您的数字。定义您选择的范围并将其包含在 (..)

import os
import random
output_files = [os.path.join(os.getcwd(), 'random-%s.txt' % i) for i in range (5)]
for of in output_files:
with open(of, "w") as text_file:
text_file.write(str(random.randint(99,1000)))

关于python - Bash 命令不会在 Jupyter Notebook 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54747724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com