죄송합니다. 반복이지만 죄송 합니다만 지금 찾으실 수 없습니다.Python 문자열로 dat 파일의 라인 순서 바꾸기
기본적으로 나는 특정 정보를 얻기 위해 반복해야하는 경로가 들어있는 파일을 열고 읽는 중입니다.
base.dat
파일의 각 줄은 m.somenumber
입니다. 예를 들어 파일의 일부 라인은 수 있습니다 : 모든 라인이 가장 큰 m.number에서 가장 작은 m에 다시 정렬되도록
Volumes/hard_disc/u14_cut//u14m12.40_all.beta/beta8
Volumes/hard_disc/u14_cut/u14m12.50_all.beta/beta8
Volumes/hard_disc/u14_cut/u14m11.40_all.beta/beta8
내가 DAT 파일을 다시 쓸 수 있어야합니다. 번호. 그런 다음 데이터베이스에서 PATH (코드에 표시됨)를 반복하면 m을 줄이면 반복됩니다. 여기
내가 할 수 플래그가 지정된 반복을 체크 한base = open('base8.dat', 'r')
database= base.read().splitlines()
base.close()
counter=0
mu_list=np.array([])
delta_list=np.array([])
ofsset = 0.00136
beta=0
for PATH in database:
if os.path.exists(str(PATH)+'/CHI/optimal_spectral_function_CHI.dat'):
n1_array = numpy.loadtxt(str(PATH)+'/AVERAGES/av-err.n.dat')
n7_array= numpy.loadtxt(str(PATH)+'/AVERAGES/av-err.npx.dat')
n1_mean = n1_array[0]
delta=round(float(5.0+ofsset-(n1_array[0]*2.+4.*n7_array[0])),6)
par = open(str(PATH)+"/params10", "r")
for line in par:
counter= counter+1
if re.match("mu", line):
mioMU= re.findall('\d+', line.translate(None, ';'))
mioMU2=line.split()[2][:-1]
mu=mioMU2
print mu, delta, PATH
mu_list=np.append(mu_list, mu)
delta_list=np.append(delta_list,delta)
optimal_counter=0
print delta_list, mu_list
코드의 관련 부분입니다하지만 내 파일이 기술적으로 문자열과 숫자가 포함되어 있지 않기 때문에이 광산에 대한 작업을 얻이 수없는 것 . '수'나에 의해 정렬 할 필요는 전체 문자열에 포함되어
Volumes/data_disc/u14_cut/from_met/u14m11.40_all.beta/beta16
나는 숫자 부분한다고 가정 단지 m (somenumber) 부분
그래서 문제가 무엇입니까? – Harsha
[파이썬 - 문자열과 숫자를 포함하는 목록의 숫자 값 정렬] 가능한 중복 (http://stackoverflow.com/questions/34288774/python-ordering-number-values-in-a-list-containing-strings-and) -number) – Julien
@HarshaBiyani 문제는 기본 .dat 파일의 모든 줄을 줄의 특정 문자열에 따라 숫자로 정렬해야한다는 것입니다. 순서가 지정되지 않은 경우 경로를 통해 반복 할 때 매개 변수 mu 및 delta가 무질서하게됩니다.나중에 다시 매개 변수에 대한 경로를 통해 내 코드에서 별도로 루프를 다시 수행해야하므로 배열을 올바른 순서로 일치시키지 않아서 다시 정렬 할 수 없습니다. –