[英]How to make a Python Glob module work Cross-Platform (os.path issues)?
所以我有一些這樣的文件:'./Example 3/ex3A.txt'
該腳本基本上需要列出符合我傳遞給它的標准(在本例中為數字)的隨機文本文件的內容。 實際的腳本對它做了更多的事情,但這是我遇到麻煩的部分。
這在我的 linux 機器上完美運行,但我不知道如何在我同事的 windows 電腦上執行此操作。 我已經嘗試了 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)
您應該能夠使用os.path.join
創建與glob
一起使用的平台不可知文件路徑:
search_path = os.path.join('*%s*' % dirnum, '*%s*.txt' % dirnum)
filenames = glob.glob(search_path)
擴展@daveruinseverything 的回復,您可以選擇使用pathlib.Path
和 f-strings:
from pathlib import Path
search_path = Path('./')/ f'*{dirnum}' / f'*{dirnum}*.txt'
filenames = glob.glob(str(search_path))
這同樣適用於使用/**/
的遞歸搜索。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.