正如标题所述,我已经构建了一个Python脚本,该脚本在我的本地系统上运行良好。但是,结果在我拥有的开发服务器上并不相同。这两个系统都运行Ubuntu 18.04仿生。我将在代码下方提供更多信息。
import os
matches = []
directory = '/home/mount/'
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.html'):
matches.append(os.path.join(root, file))
print(matches)
for index, x in enumerate(matches):
print(x)
os.system(f'echo docker run --name nginx_{index} -p 8{index}:80 -v {x}:usr/share/nginx/html -d nginx')
我的本地系统上的结果如下:
['/home/mount/test/file2.html', '/home/mount/test/file.html', '/home/mount/test/lower/file3.html']
/home/mount/test/file2.html
docker run --name nginx_0 -p 80:80 -v /home/mount/test/file2.html:usr/share/nginx/html -d nginx
/home/mount/test/file.html
docker run --name nginx_1 -p 81:80 -v /home/mount/test/file.html:usr/share/nginx/html -d nginx
/home/mount/test/lower/file3.html
docker run --name nginx_2 -p 82:80 -v /home/mount/test/lower/file3.html:usr/share/nginx/html -d nginx
这正是我想要的。基本上,脚本会在代码顶部提供的目录中或目录以下的目录中查找html文件。然后将它们添加到列表中,然后添加到采用docker命令形式的字符串中。
在服务器上,我得到的唯一输出是:
[]
这告诉我for循环无法正常工作。但是,我没有在终端中运行代码的任何错误,只是空数组。我的想法是OS模块可能有问题,但是我不确定如何检查。任何帮助表示赞赏。
答案 0 :(得分:0)
正如评论所说,我只是在代码中写错了目录。那样总是一个愚蠢的错误。