2017-02-14 85 views
0

所以我有一些文件如下所示:'./Example 3/ex3A.txt'如何使Python Glob模块工作跨平台(os.path问题)?

此脚本基本上需要列出符合我传递给它的标准的随机文本文件的内容(在此情况,数字)。实际的脚本会做更多的事情,但这是我遇到的问题。

这在我的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) 

回答

0

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

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