파일을 추가하기 전에 파일을 삭제할 수 있습니까?기존 파일을 덮어 쓰고 추가하여 Fortran에 추가하십시오.
OPEN(61,file="file.txt",action='write',position='append')
WRITE(61,*)f(i,j)
CLOSE(61)
이렇게하면 file.txt가 만들어지고 f (i, j) 값이 추가됩니다. 전체 설정은 내부 루프입니다. 그러나 다음에 동일한 코드를 실행하면 이전에 작성한 마지막 값부터 추가되기 시작합니다. 파일 내용을 실행할 때마다 데이터를 추가하기 전에 파일 내용을 완전히 제거하고 싶었습니다. 가능한가? 첫 번째 실행에서
program test
double precision f
dimension f(10,10,10)
integer i,j,k
character*500 ofile
Do k=1,5
do i=1,2
do j=1,2
f(i,j,k)= i+10d0*j+k
WRITE(ofile,'(A,F4.2,A,F4.2,A)')'file',i*1d0,'_',j*1d0,'.dat'
OPEN(61,file=ofile,action='write',position='append')
WRITE(61,*)k,f(i,j,k)
enddo
enddo
enddo
CLOSE(61)
stop
end
출력 cat file1.00_1.00.dat
이다 : 제 안목
1 12.000000000000000
2 13.000000000000000
3 14.000000000000000
4 15.000000000000000
5 16.000000000000000
다시 cat file1.00_1.00.dat
마지막에 부가 시작 : 여기
1 12.000000000000000
2 13.000000000000000
3 14.000000000000000
4 15.000000000000000
5 16.000000000000000
1 12.000000000000000
2 13.000000000000000
3 14.000000000000000
4 15.000000000000000
5 16.000000000000000
나는 두 번째 경우를 피하고자합니다. 내가 도망 매번, 그것은 실행하기 전에 파일을 삭제하지 않고
1 12.000000000000000
2 13.000000000000000
3 14.000000000000000
4 15.000000000000000
5 16.000000000000000
주의를 주어야한다 : 나는 내부 루프 구문을 함께 형식의 파일 이름으로 루프를 수행하여 파일을 열 수 있습니다. 하나의 쉬운 솔루션은 실행하기 전에 매번 모든 출력 파일을 제거하는 것입니다.
_replace_를 의미합니까? 그러나 당신은 또한 처음부터 자리를 잡을 수 있습니다. 그래서 당신이'append '를 선택할 필요가있는 이유가 있습니까? – francescalus
그냥'position = 'append''를 제거합니다. 기본값은 덮어 쓰기입니다. – agentp
@francescalus 추가 이유는 do 루프 i, j가 계속 진행될 때 동일한 파일에 모든 f (i, j)를 쓰는 것입니다. 기본적으로 나는 코드를 멈추고 다시 실행하기를 원한다. –