[英]directory path as user input, but for multiple folders at once
(使用Python 3.4)因此我有一個包含1500個文件夾的大文件夾。 我想分析每個文件夾內2層的數據。 每個文件夾的名稱具有以下格式:
YYMMDD_XXXXX_####X
其中X
是字母,而#
是數字。 我真正關心的只是####X
部分,它是獨一無二的。 在該文件夾內是一個名為"infosite-####X"
的文件夾(與父文件夾相同的####X
),在該文件夾內是一個名為"YYMMDD_XXXXX_####X_infosite.rst"
的rst
文件(也有相同的ID),其中包含我想要的數據。
我已經建立了用於數據分析的代碼,但是當每個目錄具有唯一的5mer序列時,我不想鍵入整個目錄。
現在,我的目錄只有一個文件,我想對其進行硬編碼,並像這樣進行操作:
import os
os.chdir("Z:/RunLog/160428_HV2VY_1892L/infosite-1892L")
user_input = input("Enter name of file: ")
assert os.path.exists(user_input + ".rst"), "I did not find the file at, " + str(user_input)
f = open(user_input + ".rst" ,'r+')
print("Hooray we found your file!")
理想情況下,我想吃點類似的東西
os.chdir("Z:/RunLog/*" + user_input + "/*" user_input + "/*" user_input + ".rst")
但這實際上是不允許的,而且我看不到如何將glob.glob
與它一起使用。
只需將您創建的表達式傳遞給glob()
,然后使用結果,如下所示:
import glob
import os
user_input = input("ID of file: ")
for filename in glob.glob(
"Z:/RunLog/*" + user_input + "/*" user_input + "/*" user_input + "_infosite.rst"):
f = open(filename)
...
或者,如果您不准備處理多個匹配文件:
user_input = input("ID of file: ")
filenames = glob.glob(
"Z:/RunLog/*" + user_input + "/*" user_input + "/*" user_input + "_infosite.rst")
filename = filenames[0]
f = open(filename)
還要注意,全局模式的創建可能更具可讀性,如下所示:
pattern = 'Z:/RunLog/*{0}/*{0}/*{0}_infosite.rst'.format(user_input)
filenames = glob.glob(pattern)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.