从 Fortran 中的可变输入文件读取数据
Reading data from variable input files in Fortran
我正在尝试从一个输入文件(实际上是多个文件)中读取数据,然后对每个文件的数据执行某些操作,并将每个输入文件的输出打印到 Fortran 中的输出,
原来是这样的..
Open (20, file="a0001.csv)
[perform operation on this file]
print output0001.txt
input files :a0001.csv,a0002.csv,...a0100.csv
outputfiles :output1.txt, output2.txt,.... output100.txt
我想对大约 100 个文件执行此操作。
我正在考虑 1-100 的 do 循环,但我不知道如何循环遍历可变输入文件,然后获取每个文件的输出
您也可以使用 read
和 write
语句在数字和它们的字符串表示之间进行转换。所以我会做这样的事情:
character(len=len('a0001.csv')) :: infile
character(len=len('output100.txt')) :: outfile
do i = 1, 100
write(infile, '("a", I4.4, ".csv")') i
write(outfile, '("output", I0, ".txt")') i
open(unit=20, file=infile, status="old", action="read", ...)
open(unit=30, file=outfile, status="new", action="write", ...)
!loop over contents of infile, write to outfile
close(30)
close(20)
end do
我正在尝试从一个输入文件(实际上是多个文件)中读取数据,然后对每个文件的数据执行某些操作,并将每个输入文件的输出打印到 Fortran 中的输出,
原来是这样的..
Open (20, file="a0001.csv)
[perform operation on this file]
print output0001.txt
input files :a0001.csv,a0002.csv,...a0100.csv
outputfiles :output1.txt, output2.txt,.... output100.txt
我想对大约 100 个文件执行此操作。
我正在考虑 1-100 的 do 循环,但我不知道如何循环遍历可变输入文件,然后获取每个文件的输出
您也可以使用 read
和 write
语句在数字和它们的字符串表示之间进行转换。所以我会做这样的事情:
character(len=len('a0001.csv')) :: infile
character(len=len('output100.txt')) :: outfile
do i = 1, 100
write(infile, '("a", I4.4, ".csv")') i
write(outfile, '("output", I0, ".txt")') i
open(unit=20, file=infile, status="old", action="read", ...)
open(unit=30, file=outfile, status="new", action="write", ...)
!loop over contents of infile, write to outfile
close(30)
close(20)
end do