實現功能,將資料夾下所有的json檔案讀取,並按規定的格式寫入到另外乙個檔案中,生成yaml檔案。
後期可能還需要完善。
import json
import os
from ruamel import yaml
def change_yaml():
#讀取資料夾下的檔案
dir1=os.listdir()
# print(os.listdir())
dir2=list()
dir3=list()
for i in range(len(dir1)):
if "py" not in dir1[i]:
# print(os.listdir(dir[i]))
# print(dir2)
#獲取yaml檔名
test=list()
test1=list()
test2=list()
#定義json檔案路徑dirjson
dirjson=list()
for i in range(len(dir2)):
# print(os.listdir(dir2[i]))
for j in range(len(os.listdir(dir2[i]))):
# print(os.path.splitext(os.listdir(dir2[i])[j]))
# print(type(os.path.splitext(os.listdir(dir2[i])[j])))
# 獲取json檔案路徑
pwddata = os.getcwd() + '\\' + dir2[i] + '\\' + os.listdir(dir2[i])[j]
# print(os.getcwd() + '\\' + dir2[i] + '\\' + os.listdir(dir2[i])[j])
#讀取json檔案
with open(pwddata, 'r',encoding='utf-8') as f:
x = json.dumps(json.load(f))
#追加json檔案到test1列表
#獲取json檔名
# print(dirjson)
# for m in range(len(test1)):
# print(test1[m])
# print(json.dumps(json.loads(test1[m])))
for m in range(len(test)):
if 'assert' in test[m]:
posturi = '/assert'
elif 'channel' in test[m]:
posturi = '/config'
elif 'industry' in test[m]:
posturi = '/inderstry'
elif 'parser' in test[m]:
posturi = '/parser'
elif 'sink' in test[m]:
posturi = '/writer'
elif 'source' in test[m]:
posturi = '/datasource'
else:
posturi = '/error'
pwdname = test[m] + '.yaml'
pwd = '..//config//params//xyversion//' + pwdname
with open(pwd, 'w', encoding='utf-8') as f:
# 準備資料
class dag:
def __init__(self):
self.case_suite = test[m]
self.descrpiton = test[m]
with open(dirjson[m], 'r', encoding='utf-8') as f_load:
dic2 = json.load(f_load)
dic1 = [,
"data": dic2,
"set_up": "",
"tear_down": "",
"asserts": "200"
}],}
]self.moduels = dic1
with open(pwd,'w',encoding='utf-8') as stream:
data = dag()
yaml.dump(data.__dict__, stream=stream, dumper=yaml.roundtripdumper, allow_unicode=true)
if __name__ == '__main__':
data=change_yaml()
python所有的魔術方法
據說,python 的物件天生擁有一些神奇的方法,它們總被雙下劃線所包圍,他們是物件導向的 python 的一切。他們是可以給你的類增加魔力的特殊方法,如果你的物件實現 過載 了這些方法中的某乙個,那麼這個方法就會在特殊的情況下被 python 所呼叫,你可以定義自己想要的行為,而這一切都是自動發生...
python 合併乙個目錄下所有的txt檔案
如何才能合併乙個目錄下所有的txt檔案?在合併之後可以統一的做處理。import os input path c users desktop txt 此處填好自己的路徑,注意最後的 使用os.listdir函式獲取路徑下的所有的檔名,並存在乙個list中 使用os.path.join函式,將檔名和路...
在Linux Mac下面刪除所有的 svn檔案
在使用svn管理 的時候,如果提交原有的svn管理下的project到新的svn目錄下時,需要先刪除原有的資料夾裡面的所有的.svn檔案下面的所有內容,否則直接提交會導致失敗。注意 最好先拷貝乙個新的專案,然後刪除備份檔案夾下面的.svn檔案。以免原有的svn專案有未提交的 導致檔案不能提交,造成丟...