【发布时间】:2019-05-05 03:39:55
【问题描述】:
正如标题所说,我已经构建了一个 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 循环无法正常工作。但是,我没有收到在终端中运行代码的任何错误,只是空数组。我的想法是操作系统模块可能有问题,但我不确定如何检查。任何帮助表示赞赏。
【问题讨论】:
-
/home/mount/存在于您的服务器上吗? -
@Dinari 我已将服务器上的路径更改为 /home/Documents/scripts ,因为我在目录中输入密码时看到的路径不正确。叹。会改变然后更新。
-
@Dinari 是的,这正是问题所在。谢谢
标签: python html ubuntu operating-system