TCL——访问文件(一)

目录

0  引言

1  file 命令

2  管理当前工作目录和内容—— pwd cd glob

3  复制和重命名操作

4  批量操作

5  获取文件信息


0  引言

Tcl 中处理文件和目录的命令是非常重要的,因为在 Tcl 中,文件和目录的处理是非常常见的操作。例如,一个 Tcl 脚本可能需要读取一个配置文件,或者需要创建一个新的日志文件,或者需要遍历一个目录中的所有文件,这些都需要使用文件和目录处理命令。此外,这些命令还可以帮助开发人员更好地管理文件和目录,确保文件和目录的安全性和可靠性。

1  file 命令

file 命令用于获取文件的属性

file 命令
命令解释
file dirname返回文件的目录部分
file tail返回文件的文件名部分
file extension返回文件的扩展名部分
file nativename返回原生格式的文件名
file rootname返回除扩展名之外的部分
file split返回分割后的字符串部分
file joinfile split 的逆操作
# 假定一个文件,这里用花括号是因为文件名中有空格
set file {C:/Program Files/Tcl/tclsh.exe}
# file dirname 获取文件的目录部分
puts [file dirname $file]
# file tail 获取文件的文件名部分
puts [file tail $file]
# file extension 获取文件的扩展名
puts [file extension $file]
# file nativename 获取文件在本地磁盘上的完整路径
puts [file nativename $file]
# file rootname 获取除扩展名之外的部分
puts [file rootname $file]
# file split 按照正斜线分割,返回各部分字符串
puts [file split $file]
# file join 是split命令的逆过程
puts [file join C:/ {Program Files} Tcl tclsh.exe]

2  管理当前工作目录和内容—— pwd cd glob

在计算机中,相对路径和绝对路径都是用来描述文件或者目录在系统中的位置

绝对路径:是文件或者目录的完整路径。从根目录开始,一直到文件或者目录的位置。例如 Windows 中可能长这样 C:\Users\username\Documents\example.txt 。Linux 中的绝对路径可能长这样 /home/username/Documents/example.txt C:/Program Files/Tcl/tclsh.exe 就是一个绝对路径,因为它从根目录开始,一直到 tclsh.exe 文件的位置。

相对路径:是文件或目录相对于当前工作目录的路径。例如,如果当前工作目录是 /path/to/directory ,那么 ./file.txt 就是相对路径。因为它指向当前工作目录下的 file.txt 文件。同样,../parent_directory/file.txt 也是相对路径。因为它指向当前工作目录下的父目录下file.txt 文件。

管理当前工作目录和内容
命令解释
pwd返回当前工作目录的绝对路径
cd切换到参数指定的目录
glob获取当前工作目录下的内容

Tcl 提供了两个命令来管理当前工作目录:pwd(print working directory) 和 cd (change directory)。其中 pwd 直接返回当前工作目录的绝对路径,cd 接一个参数,切换到该参数指定的工作目录   cd ..     cd 命令后接两个英文句号用于返回上一级目录

puts [pwd] ;#输出 F:/TCL
file mkdir 22 33 ;# 创建两个目录
file delete ./22/3.tcl ;#使用相对路径删除22目录下的3.tcl文件
cd ./22 ;# 切换至当前目录的子目录22
file delete 1.tcl ;#删除1.tcl文件
eval file delete {*}[glob *.tcl] ;#通过glob命令批量删除以.tcl为扩展名的文件
# 这里33目录为非空目录,也就是里面有文件存在
file delete 33 ;#error deleting "22": directory not empty
file delete -force 33 ;# 需要 -force 关键字来删除 

3  复制和重命名操作

file copy 复制操作

用于将源文件复制到目标文件中,file  ./path1/file.txt  ./path2/file.txt  。如果目标文件已存在则会报错。此时可以使用 file copy -force ./path1/file.txt  ./path2/file.txt   。来实现,覆盖已存在的文件。还可以将多个文件复制到目标目录中。

# 复制源文件至指定目录下的文件中
file copy ./10_Tcl_file/10.2.tcl ./22/1.tcl
# 复制文件至指定目录
file copy ./10_Tcl_file/10.2.tcl ./10_Tcl_file/10.1.tcl ./22

file rename 重命名操作

可以对目录文件进行重命名操作,如果目标名称已存在,则会报错,可以通过 -force 关键字来覆盖源文件。

如果 file rename 的目标名称指向了新目录,则会将源文件移动到新目录下。

file rename -force ./11/444.tcl ./22/33.tcl

上述命令实际起到了将 11 这个目录下的 444.tcl 文件移动到 22 这个目录下的 33.tcl 文件。

4  批量操作

借助 file rename 的机制,便可实现将一批文件从原来的目录移动到指定目录下。

 

proc move_to_dir {filename directory} {
    foreach i_fn $filename {
        file rename $i_fn $directory
    }
}
set filename [glob ./9_Tcl_namespace/*.tcl]
puts $filename
set directory ./11
move_to_dir $filename $directory

通过上述的 proc 我们将 ./9_Tcl_namespace/ 这个目录下的 .tcl 文件全部移动到 ./11 这个目录下了。 

5  获取文件信息

获取文件信息命令
命令解释
file exists当前文件或目录是否存在
file isfile判断指定内容是否为文件
file isdirectory判断指定内容是否为目录
file type返回指定内容的类型
file readable判断是否有可读权限
file writable判断是否有可写权限
file executable判断是否有可执行权限

说明,当前目录中不存在 22 这个目录,存在 11 这个目录。

puts [file exists 11] ;# 指定目录是否存在 存在 返回1
puts [file exists 22] ;# 指定目录是否存在 不存在 返回0
puts [file isfile 11] ;# 判断是否为文件
puts [file isdirectory 11] ;# 判断是否为目录
puts [file type 11] ;#返回类型  目录
puts [file type ./10_Tcl_file/10.3.tcl] ;#返回类型  文件
puts [file readable ./10_Tcl_file/10.3.tcl] ;# 是否可读
puts [file writable ./10_Tcl_file/10.3.tcl] ;# 是否可写
puts [file executable ./10_Tcl_file/10.3.tcl] ;# 是否可执行

Tcl 还提供了一个更简单的一次性获取文件的各种信息的命令: file stat XXXX arrayName  各个关键字的具体信息就不写了。

file stat ./10_Tcl_file/10.3.tcl file_info
parray file_info

 

IC-CAD
关注 关注
  • 36
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tcl常用命令备忘录-访问文件
m0_61544122的博客
06-08 3562
示例解释:以上例子中,我们首先使用open命令打开一个文件,该文件的名字为"output.txt",操作为写文件("w")。第三个例子中,使用file exists检查文件是否存在,如果存在则打开文件,使用read读取文件内容,并输出到控制台。第一个例子中,使用file exists检查文件是否存在,如果存在则输出"文件存在",否则输出"文件不存在"。如果test.txt存在,则输出"文件存在",否则输出"文件不存在"。如果test.txt文件存在,则输出文件内容,否则输出"文件不存在"。
TCL(Tool Command Language)学习(四)-----文件操作
QUACK_G的博客
07-27 1763
UNIX 下,会把工作目录变为启动 TCL 脚本的用户的工作目录,WINDOWS 下会把工作目录变为 windows 操作系统的安装目录所在的盘的根目录(如:C:/)将拆分后的结果保存到一个变量中。拆分后的以列表的方式进行存储。
tcl脚本语言之file的常见用法
最新发布
hzmscut的博客
05-24 690
这些命令覆盖了从文件属性获取、修改、复制、删除、路径处理等广泛的文件操作需求。命令用于处理文件系统操作。
.tcl文件_Tcl中对文件和程序的操作的几个命令
weixin_39959369的博客
11-27 8241
Tcl中涉及运行程序,查看文件系统和以及通过env数组来存取换将变量的命令有:exec、file、open、close、read、write、puts、gets、flush、seek、tell、glob、pwd、cd、exit、pid和registry命令。1execexec 命令Tcl 解释器中运行其它进程。exec 命令和从 unix shell 命令行或者 unix shell...
tcl语言读取文件一行_TCL语言(九) 路径和文件
weixin_39855634的博客
12-22 1681
TCL语言(九)路径和文件(2009-12-28 16:33:33)标签:杂谈~/tcltk$ tclsh% file exists hello3.tcl1% file executable testit0% file pathtype ./hello3.tclrelative% set dir1 homehome% set dir2 brianbrian% set dir3 tcltktclt...
TCL脚本存取二进制文件应用举例
07-25
之前介绍了本人研究如何使用TCL脚本来存取二进制文件,这是因为我们在具体项目中实际使用得到,今天就给大家介绍下如何使用。
TCLfile命令
iqifenxia的博客
11-10 8912
最近,看到redis自己的测试代码,于是简单了解一下,总结一下file命令的简单实用,不废话,上代码 #!/usr/bin/tclsh set path $argv0 # atime: 以UNIX时间戳形式,返回/设置文件访问时间 puts "atime: [file atime $path]" # 返回/设置文件属性信息 puts "attributes: [file attributes $path]" # 返回单个文件属性信息 puts "attibutes, permission: [
Tcl文件操作与程序调用
weixin_48943109的博客
08-01 922
其中fileName:用于打开的文件名。access是文件存取模式,默认读,其余如下。语法:open fileName?permission?permissio是一个八进制数,用于设置文件访问权限。
TCL文件访问
GGbao_的博客
05-19 1916
如果 cd 没使用参数,UNIX 下,会把工作目录变为启动 TCL 脚本的用户的工作目录,WINDOWS 下会把工作目录变为 windows 操作系统的安装目录所在的盘的根目录(如:C:/)。file lstat name arrayName 除了利用 lstat 内核调用代理 stat 内核调用之外,和 file stat 命令一样,这意味着如果 name 是一个符号连接,那么这个命令返回的是这个符号连接的信息 而不是这个符号连接指向的文件的信息。读 fileId 标识的文件的下一行,忽略换行符。
Tcl 读写文件
xiaoyuzhou1994的博客
02-18 1988
Tcl 文件命令假定所处理的文件是文本文件。不过,Tcl也提供了对二进制文件进行读、写以及数据修改的能力。
TCL脚本学习资料——入门必看
11-02
综上所述,这个TCL学习资料压缩包将涵盖TCL的基础语法、常用命令文件操作、错误处理等多个方面,对于初学者来说是一份很好的自学材料。通过学习这些内容,你将能够掌握TCL的基本技能,并能在实际项目中灵活运用。
TCL基础教程——(2)输出和变量.pdf
11-21
然而,要创建一个独立的TCL程序,你需要将代码写入一个文件,比如`Helloworld.tcl`,并在文件的第一行添加shebang行(`#!/usr/bin/tclsh`),指定TCL解释器的位置。然后,通过`chmod +x`命令赋予脚本执行权限,并...
shell-perl-python等脚本文件加密工具
10-30
"shell-perl-python等脚本文件加密工具"这个主题就涉及到这样一个工具——shc。 shc(Shell Script Compiler)是一款开源工具,它能够将Shell脚本转换成二进制可执行文件,从而达到加密和保护脚本源码的目的。shc的...
Tcl Scripting Language Components-开源
04-26
本文将重点介绍一个针对Delphi集成环境的Tcl组件——Tslc。Tslc允许开发者在Delphi项目中无缝集成Tcl脚本语言,极大地拓展了Delphi应用程序的功能,并提供了丰富的可视化工具来增强开发体验。 1. **拖放和双击命令...
TCL脚本文件读取和写入--实操版
aaaaaaaa585的博客
08-18 6877
TCL脚本文件读取和写入
TCL学习之文件命令(2)
正在努力的ICer的博客
04-28 6051
这篇文章接上一篇文章讲一下能够提供文件信息的file命令。 1.filename提供文件信息 序号 函数 描述 1 filedirname 返回路径名 2 file extension 返回文件扩展名 3 file roootname 返回不包括扩展名的文件名 4 file tail 返回不包括路径名的文件
Tcl——访问文件(二)
m0_59557249的博客
05-15 8149
Tcl语言之读写文件
(83)TCL脚本命令【读文件
m0_46498597的博客
02-15 582
Tcl 语言的全称 Tool Command Language,即工具命令语言。这种需要在 EDA 工具中使用的相当之多,或者说几乎每个 EDA 工具都支持 Tcl 语言。所以对于 IC 专业的来说,学习Tcl也是很重要很必要的。静态时序分析中多用的 Synopsys Tcl 语言,主要服务于 IC设计,其他的FPGA厂商比如 Xilinx的 .ucf文件 .xdc文件也都是 Tcl 语言编写,这与 Synopsys 半导体公司的 Tcl 语言基本相同。
tcl读取文件每一行
09-01
要在Tcl中读取文件的每一行,你可以使用`read`命令结合`gets`函数。下面是一个例子: ```tcl set file [open "filename.txt" r] while {[gets $file line] != -1} { puts $line } close $file ``` 在这个例子中,...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Tcl——访问文件(二) 8127
  • TCL 语言的数据结构——字典 4486
  • TCL——访问文件(一) 4234
  • 学习 TCL 语言流程控制这一篇就够了 3082
  • TCL 语言的过程 proc 2879

分类专栏

  • 杂言碎语 1篇
  • TCL语言 10篇
  • Vim 1篇
  • 数字IC后端

最新评论

  • (2, ‘系统找不到指定的文件。‘, None, 2, None)setuptools-65.5.1-pyhd8ed1ab_0

    weixin_48972433: 执行完conda env create f environment.yml指令出现报错usage: conda-env [-h] {attach,create,export,list,remove,upload,update} ... conda-env: error: unrecognized arguments: environment.yml是为什么?

  • (2, ‘系统找不到指定的文件。‘, None, 2, None)setuptools-65.5.1-pyhd8ed1ab_0

    m0_49691379: 怎么配置yml文件呀?在哪儿创建?

  • 零基础入门TCL语言(二)

    初中没毕业(真的): 老大,说下怎么调试呀

  • (2, ‘系统找不到指定的文件。‘, None, 2, None)setuptools-65.5.1-pyhd8ed1ab_0

    *Sally Enid*: 为什么后面安装pytorch安装不上呀?

  • TCL 语言中——变量的作用域

    hhdejuice: 对照鲜明,通俗易懂表情包

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 用 cursor 写代码,真的爽死了
  • 学一门编程语言,学到什么程度才算 OK ?
  • Tcl 进阶之路,编程题(1)—— Acronym
2024年7篇
2023年18篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码东莞模板网站建设盐田模板推广永湖网络推广永湖网络营销大运百度seo双龙模板推广永湖网站优化按天收费大运网站制作坪地seo爱联英文网站建设永湖百搜标王深圳企业网站制作深圳网站优化按天计费沙井百搜词包大运网站改版观澜SEO按天收费平湖网站设计福田阿里店铺托管罗湖网站优化排名大浪百搜词包南澳企业网站设计同乐建设网站观澜模板制作荷坳网站优化按天收费盐田设计网站坑梓网站优化按天计费南联SEO按天收费南山关键词按天计费大浪百姓网标王推广吉祥网站关键词优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化