溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python腳本語言作為轉(zhuǎn)換數(shù)據(jù)的工具示例分析

發(fā)布時間:2021-10-14 14:27:54 來源:億速云 閱讀:99 作者:柒染 欄目:編程語言

python腳本語言作為轉(zhuǎn)換數(shù)據(jù)的工具示例分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

      都說python是解釋形語言,意思是讀取一行執(zhí)行一行,現(xiàn)在就有一段python程序擺在面前,其功能是“將一個csv文件名以及按文件中的內(nèi)容轉(zhuǎn)換成多個以內(nèi)容為目錄的linux下目錄結(jié)構(gòu)”; 這段話應(yīng)該比較的模型化,用一個具體的例子來說會容易理解點,這里就假設(shè)有這樣的一個小需求:現(xiàn)有一個壓縮文件 JiangSu-1949-10-01-HumanScience.csv.gz,該壓縮文件包含了江蘇省1949年10月1日前建立的人文科學(xué)專業(yè)大學(xué)的詳細名單,需要轉(zhuǎn)換為一組文件夾,每個文件夾單獨存放從簽署大學(xué)總錄中包含的一個大學(xué)詳細信息。(注:
以下僅為實現(xiàn)該小需求的示例python, 參數(shù)文件為 JiangSu-1949-10-01-HumanScience.csv.gz)

if SpecifiedUnivercity is None:
return None
return SpecifiedUnivercity.groups()
def TransformData(TotalUniversities, RootUnivercity_Path, pattern):
SpecifiedUniversity = ResolveUnivercity(TotalUniversities, pattern)
if SpecifiedUniversity is None:
print 'Cannot resolved  TotalUniversities file'
return 1
else:
print 'UniversityName: [%s] Born: [%s-%s-%s] Area: [%s]' % SpecifiedUniversity
if not SpecifiedUniversity[4] in ["NatureScience", "HumanScience"]:
print "system only analyze Nature or Human Science"
return 1
if RootUnivercity_Path is None:
RootUnivercity_Path = '%s' % SpecifiedUniversity[0]
gfile = gzip.open(TotalUniversities, "rb")
rownum = 0
HasNext = False

SpecifiedUnivercity_Content = {}
SpecifiedUnivercity_DetailContent = None
for row in csv.reader(gfile):
if rownum == 0:
header = row
else:

SpecifiedUniversity_Name = row[0]
 if len(SpecifiedUniversity_Name) > 0:
HasNext = True

if SpecifiedUnivercity_Content.has_key(SpecifiedUniversity_Name):
SpecifiedUnivercity_DetailContent = SpecifiedUnivercity_Content[SpecifiedUniversity_Name][1]

else:
rownum = 0
# create new file
SpecifiedUniversity_File = '%s_%s_%s.csv' % (SpecifiedUniversity[0], SpecifiedUniversity_Name, SpecifiedUniversity[2])

AbsolutePath = os.path.join(RootUnivercity_Path, SpecifiedUniversity_Name)
AbsolutePathName = os.path.join(AbsolutePath, SpecifiedUniversity_File)

if not os.path.exists(AbsolutePath):
os.makedirs(AbsolutePath, 0777)
outfile = open(AbsolutePathName, 'wb')

SpecifiedUnivercity_DetailContent = csv.writer(outfile, Token=',')
# insert into  SpecifiedUniversity
SpecifiedUnivercity_Content[SpecifiedUniversity_Name] = [outfile, SpecifiedUnivercity_DetailContent, False]
else:
HasNext = False

if SpecifiedUnivercity_DetailContent is not None:
SpecifiedUnivercity_DetailContent.writerow(row)
else:
print "row %d has no owner file" % rownum
rownum += 1
gfile.close()
for key in SpecifiedUnivercity_Content.keys():
SpecifiedUnivercity_Content[key][1].close()
SpecifiedUnivercity_Content[key][0].close()

if __name__ == "__main__":
#JiangSu-1949-10-01-HumanScience.csv.gz
ResolvedSpecofiedUnivercity = re.compile(r'(/w{2,})-(/d{4})-(/d{2})-(/d{2})-(/w{1,})/.')

for file in sys.argv[1:]:
TransformData(file, None, ResolvedSpecofiedUnivercity)

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI