如何使Python Glob模块工作跨平台(os.path问题)?

时间:2017-02-14 04:11:15

标签: python path cross-platform

所以我有一些文件如下:'。/ Example 3 / ex3A.txt'

此脚本基本上需要列出与我传递给它的条件(在本例中为数字)匹配的随机文本文件的内容。实际的脚本可以做更多的事情,但这是我遇到麻烦的部分。

这完全适用于我的linux机器,但我无法弄清楚如何在我的同事的Windows PC上执行此操作。我已经尝试了os.join.path之类的各种迭代,但我似乎无法让它跨平台工作。

以下是在linux上完美运行的脚本的库存版本:

import os
import sys
import glob
import random

script, dirnum = sys.argv

#Create list of filenames
filenames = glob.glob('./*%s/*%s*.txt' % (dirnum, dirnum))

#Open Random file from list
select_file = open(random.choice(filenames))
file_content = selct_file.read()
print(file_content)

1 个答案:

答案 0 :(得分:0)

您应该能够使用os.path.join创建与glob一起使用的平台无关文件路径:

search_path = os.path.join('*%s*' % dirnum, '*%s*.txt' % dirnum)
filenames = glob.glob(search_path)