python 將所有的json檔案寫入到yaml

2021-09-26 14:46:17 字數 2433 閱讀 3747

實現功能,將資料夾下所有的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專案有未提交的 導致檔案不能提交,造成丟...