Python脚本-适用于本地环境,但不适用于开发服务器



正如标题所说,我已经构建了一个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循环工作不正常。然而,我在终端中运行代码时没有收到任何错误,只是收到了空数组。我认为这可能是操作系统模块的问题,但我不确定如何检查。感谢您的帮助。

正如注释所说,我只是在代码中写错了目录。这总是一个愚蠢的错误。

最新更新