Fortran Coder

标题: 在文件夹里建新的文件夹,在新的文件夹里写入数据 [打印本页]

作者: lumlngz    时间: 2023-9-19 18:38
标题: 在文件夹里建新的文件夹,在新的文件夹里写入数据
[Fortran] 纯文本查看 复制代码
write(dirname_1,'("total")')
          write(dirname,'("part")')
          write(filename,'(A2,".txt")')name
          call system("mkdir "//dirname_1)
          call system("mkdir "//dirname)
          open(30,
     &    file=trim(dirname_1)//'/'//trim(dirname)//'/'//filename)
      do i=0,numr
          radius=i*dr
          write(30,'(5f15.6)') radius,b,c,d,e
      enddo


作者: lumlngz    时间: 2023-9-19 18:39
我看过另外一种方法比较麻烦,可以用call system 的方法实现这种操作吗
作者: lumlngz    时间: 2023-9-19 18:40
希望各位老师赐教感谢感谢
作者: fcode    时间: 2023-9-19 18:45
你现在这种方式有啥问题吗?
作者: lumlngz    时间: 2023-9-19 19:25
本帖最后由 lumlngz 于 2023-9-19 19:27 编辑

有老师解答嘛
作者: lumlngz    时间: 2023-9-19 19:26
fcode 发表于 2023-9-19 18:45
你现在这种方式有啥问题吗?

有问题,就是新建的part文件夹没有在total文件夹里出现,只有一个文件夹
作者: fcode    时间: 2023-9-20 10:00
write(dirname_1,'("total")')
像这种写法很奇怪。直接写
dirname_1 = "total"
更直观,运行也更快

[Fortran] 纯文本查看 复制代码
dirname_1 = "total"
dirname= "part"
filename = trim(name)//'.txt'
call system("mkdir "//dirname_1)
call system("mkdir "//trim(dirname_1)//'/'//dirname)
open(30,file=trim(dirname_1)//'/'//trim(dirname)//'/'//filename)
      do i=0,numr
          radius=i*dr
          write(30,'(5f15.6)') radius,b,c,d,e
      enddo
end

作者: lumlngz    时间: 2023-9-27 17:24
fcode 发表于 2023-9-20 10:00
write(dirname_1,'("total")')
像这种写法很奇怪。直接写
dirname_1 = "total"

好的捏谢谢版主
作者: lumlngz    时间: 2023-10-29 21:42
fcode 发表于 2023-9-20 10:00
write(dirname_1,'("total")')
像这种写法很奇怪。直接写
dirname_1 = "total"

版主我又用您方法试了怎么显示命令语法错误捏
作者: fcode    时间: 2023-10-30 10:07
lumlngz 发表于 2023-10-29 21:42
版主我又用您方法试了怎么显示命令语法错误捏

上代码,截图
作者: lumlngz    时间: 2024-4-5 10:41
fcode 发表于 2023-10-30 10:07
上代码,截图

我用的代码就是您上面的那个,但还是出现命令语法错误了
作者: lumlngz    时间: 2024-4-5 10:43
fcode 发表于 2023-10-30 10:07
上代码,截图

[Fortran] 纯文本查看 复制代码
dirname_1 = "total"
dirname= "part"
filename = trim(model)//'.txt'
call system("mkdir "//dirname_1)
call system("mkdir "//trim(dirname_1)//'/'//dirname)
open(30,file=trim(dirname_1)//'/'//trim(dirname)//'/'//filename)
do i=0,10
      radius=i*0.1
      write(30,'(5f15.6)') radius
enddo


作者: fcode    时间: 2024-4-5 19:47
如果你用的 windows 系统的话,用 '\' 代替 '/'
[Fortran] 纯文本查看 复制代码
dirname_1 = "total"
dirname= "part"
filename = trim(model)//'.txt'
call system("mkdir "//dirname_1)
call system("mkdir "//trim(dirname_1)//'\'//dirname)
open(30,file=trim(dirname_1)//'\'//trim(dirname)//'\'//filename)
do i=0,10
      radius=i*0.1
      write(30,'(5f15.6)') radius
enddo

作者: lumlngz    时间: 2024-4-8 15:28
fcode 发表于 2024-4-5 19:47
如果你用的 windows 系统的话,用 '\' 代替 '/'
[mw_shl_code=fortran,true]dirname_1 = "total"
dirname=  ...

成功了!谢谢老师




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2