使用Python实现touch命令功能

部署运行你感兴趣的模型镜像

       公司指定的办公平台是Windows,而且给了诸多不自由的限制。如果对shell有一点点依赖,那么会是一个很麻烦的事情,毕竟对Windows的批处理命令熟悉度不够。由于touch命令使用的频繁,我觉得可以拿Python去模拟一个简单的伪touch。我所用到的touch最多的功能其实就只有一个——创建文件!这还是得说到公司办公的电脑环境上,鼠标的右键点一次反应有时候会达到一分钟,的确是很诡异。

       在尝试了申请安装Cygwin失败之后,我觉得自己还是得写点什么才好了。

       今晚状态不佳,困顿异常,但是却也丝毫没有一下子能够睡着的感觉。尝试用Python实现一下我自己需要的小功能吧!

       代码如下:

#!/usr/bin/python

 

import os

 

defTouch(file_name):

       if file_name in os.listdir('.'):

              print("file exist!")

       else:

              print("creating %s" %file_name)

              fid = open(file_name,'w')

              fid.close()

 

# test interface

 

for eacn_file in['a.txt','b.txt','c.txt']:

       Touch(eacn_file)

       测试记录如下:

E:\WorkSpace\02_技术实践\01_编程语言\04_Python\exp_03>dir

 驱动器 E 中的卷没有标签。

 卷的序列号是 2013-5089

 

 E:\WorkSpace\02_技术实践\01_编程语言\04_Python\exp_03 的目录

 

2017/03/16  23:40   <DIR>          .

2017/03/16  23:40   <DIR>          ..

2017/03/16  23:38              294 exp_03.py

               1 个文件            294 字节

               2 个目录79,102,218,240 可用字节

 

E:\WorkSpace\02_技术实践\01_编程语言\04_Python\exp_03>pythonexp_03.py

creating a.txt

creating b.txt

creating c.txt

 

E:\WorkSpace\02_技术实践\01_编程语言\04_Python\exp_03>dir

 驱动器 E 中的卷没有标签。

 卷的序列号是 2013-5089

 

 E:\WorkSpace\02_技术实践\01_编程语言\04_Python\exp_03 的目录

 

2017/03/16  23:40   <DIR>          .

2017/03/16  23:40   <DIR>          ..

2017/03/16  23:40                 0 a.txt

2017/03/16  23:40                 0 b.txt

2017/03/16  23:40                 0 c.txt

2017/03/16  23:38               294 exp_03.py

               4 个文件            294 字节

               2 个目录79,102,218,240 可用字节

 

E:\WorkSpace\02_技术实践\01_编程语言\04_Python\exp_03>pythonexp_03.py

file exist!

file exist!

file exist!

       这样,文件创建的功能至少是有了。如果文件已经存在也不会出现覆盖的情况。如果想要时间戳功能,再增加额外的功能就好了。代码中加入了几个print用来显示执行情况,实际使用的代码这部分当然是去掉更舒服一些。速度快,而且少了很多不必要的信息,沉默是金嘛!

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 实现 Python 中的 Touch 功能 为了模拟 `touch` 命令的行为,在 Python 中可以创建一个函数来更新文件的时间戳或创建新文件。下面是一个简单的例子: ```python import os import time def touch(file_path): with open(file_path, 'a'): os.utime(file_path, None) if __name__ == "__main__": file_name = "example.txt" touch(file_name) print(f"{file_name} has been touched at {time.strftime('%Y-%m-%d %H:%M:%S')}") ``` 此脚本定义了一个名为 `touch()` 的函数,它接受单个参数——要处理的文件路径。如果该文件不存在,则会在指定位置创建一个新的空文件;如果文件已经存在,则仅修改其访问时间和更改时间而不改变文件内容。 对于更复杂的场景,比如想要设置特定的时间戳而不是当前时间,可以通过传递元组给 `os.utime()` 函数来完成这一操作[^1]。 另外一种方法是利用 subprocess 模块调用系统的 `touch` 命令(适用于支持此命令的操作系统),这使得跨平台兼容性较差但是更加贴近原生行为: ```python import subprocess def system_touch(file_path): try: result = subprocess.run(['touch', file_path], check=True) return True except Exception as e: print(e) return False if __name__ == "__main__": file_name = "example_sys.txt" success = system_touch(file_name) if success: print(f"Successfully used system touch on {file_name}.") ``` 这种方法依赖于目标机器上安装有 `touch` 工具,并且 Python 进程具有足够的权限去执行这个外部程序。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值