基于python批量處理dat文件及科學(xué)計(jì)算方法詳解
摘要:主要介紹一些python的文件讀取功能,文件內(nèi)容修改,文件名后綴更改等操作。
批處理文件功能
import os
path1 = 'C:\\Users\\awake_ljw\\Documents\\python for data analysis\\test1'
path2 = 'C:\\Users\\awake_ljw\\Documents\\python for data analysis\\test2'
filelist = os.listdir(path1)
for files in filelist:
Olddir = os.path.join(path1,files)
filename = os.path.splitext(files)[0]
filetype = os.path.splitext(files)[1]
print Olddir
file_test = open(Olddir,'r')
Newdir = os.path.join(path2,str(filename)+'.csv')
print Newdir
file_test2 = open(Newdir,'w')
for lines in file_test.readlines():
strdata = ",".join(lines.split('\t'))
file_test2.write(strdata)
file_test.close()
file_test2.close()
os模塊是python最基礎(chǔ)的模塊之一,一般用于文件處理等操作。上面這段代碼主要就是將dat文件轉(zhuǎn)化為csv文件,同時(shí)保證csv可讀。一般txt文件不能通過(guò)直接改后綴改變呈csv文件格式,一般會(huì)造成文件不可讀。csv文件一般通過(guò)逗號(hào)分隔文本,數(shù)據(jù)處理起來(lái)較得心應(yīng)手,可以直接改后綴得到xlsx文件,一般excel也可讀。
科學(xué)計(jì)算
matlab作為一門科學(xué)計(jì)算編程語(yǔ)言,在科學(xué)計(jì)算的應(yīng)用實(shí)在廣泛,包括webread等強(qiáng)大的函數(shù)用起來(lái)十分順手,但matlab是商業(yè)軟件,并不免費(fèi)。其實(shí),python在科學(xué)計(jì)算效率或函數(shù)庫(kù)功能包括其繪圖功能、圖像處理都很強(qiáng)大,(相比matlab,python的調(diào)色板更出色)。以下列舉一些數(shù)據(jù)文件讀取,繪圖的一些基本操作作為參考。
數(shù)據(jù)提取及繪圖
#數(shù)據(jù)提取
import os
import pandas as pd
import numpy as np
number = -1;
sudu=np.zeros(5247*5,dtype=float).reshape(5247,5)
for files in filelist1:
number +=1
data = pd.read_csv(str(number+1)+'a.csv')
sudu[:,number]=data['velocity']
x = data['x']
y = data['y']
a = sudu[0:5184,0].reshape(81,64)
%matplotlib inline
import matplotlib.pyplot as plt
extent = [np.min(x),np.max(x),np.min(y),np.max(y)]
plt.subplot(231)
u0 = sudu[0:5184,0].reshape(81,64)
plt.imshow(u0,extent=extent,origin='lower')
plt.subplot(232)
u1 = sudu[0:5184,1].reshape(81,64)
plt.imshow(u1,extent=extent,origin='lower')
plt.subplot(233)
u2 = sudu[0:5184,2].reshape(81,64)
plt.imshow(u2,extent=extent,origin='lower')
plt.subplot(234)
u3 = sudu[0:5184,3].reshape(81,64)
plt.imshow(u3,extent=extent,origin='lower')
#plt.axis("equal")
plt.subplot(235)
u4 = sudu[0:5184,4].reshape(81,64)
plt.imshow(u4,extent=extent,origin='lower')
plt.subplot(236)
u5 = sudu[0:5184,4].reshape(81,64)
plt.imshow(u5,extent=extent,origin='lower')
#contour
cs = plt.contour(u5, 20,extent = extent)
plt.xlim(-0.8,0.8)
plt.ylim(0.6,2.2)
plt.axis('equal')


python的科學(xué)計(jì)算功能與matlab及其相似,python有幾點(diǎn)不同在于
1.python有元組的數(shù)據(jù)類型,元組不同于列表,元組不可更改
2.python的數(shù)據(jù)檢索使用[]
總而言之,python的數(shù)據(jù)形式及其豐富。
numpy以及pandas是python用于數(shù)據(jù)處理的兩個(gè)庫(kù),具體使用方法主要推薦python科學(xué)計(jì)算這本書。matplotlib用于繪圖,剛也說(shuō)了,其調(diào)色板很厲害哦,圖像質(zhì)量不錯(cuò)。
預(yù)告:代碼運(yùn)行環(huán)境均為jupyter notebook,簡(jiǎn)直神器一般的存在,網(wǎng)上搭建的資料也太多。
以上這篇基于python批量處理dat文件及科學(xué)計(jì)算方法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python操作MySQL數(shù)據(jù)庫(kù)的示例代碼
這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫(kù)的方法,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
Python實(shí)現(xiàn)的擬合二元一次函數(shù)功能示例【基于scipy模塊】
這篇文章主要介紹了Python實(shí)現(xiàn)的擬合二元一次函數(shù)功能,結(jié)合實(shí)例形式分析了Python基于scipy模塊進(jìn)行二元一次函數(shù)擬合相關(guān)科學(xué)運(yùn)算操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05
Python常見加密模塊用法分析【MD5,sha,crypt模塊】
這篇文章主要介紹了Python常見加密模塊用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了MD5,sha與crypt模塊加密的相關(guān)實(shí)現(xiàn)方法與操作技巧,需要的朋友可以參考下2017-05-05
使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過(guò)程解析
這篇文章主要介紹了使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
numpy 中l(wèi)inspace函數(shù)的使用
本文主要介紹了numpy 中l(wèi)inspace函數(shù)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
對(duì)pyqt5中QTabWidget的相關(guān)操作詳解
今天小編就為大家分享一篇對(duì)pyqt5中QTabWidget的相關(guān)操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
利用python繪制數(shù)據(jù)曲線圖的實(shí)現(xiàn)
這篇文章主要介紹了利用python繪制數(shù)據(jù)曲線圖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

