请写一段python脚本,要求如下: 1.每次运行时检测某一文件下是否有文件新增,如果有,将此文件名打印出来;如果没有,打印“-1”
时间: 2024-02-20 11:59:58 浏览: 28
好的,这是一个可以实现您要求的Python脚本:
```python
import os
path_to_watch = "/path/to/watch" # 监控的文件夹路径
files = os.listdir(path_to_watch) # 获取文件夹中的文件
if hasattr(path_to_watch, '__iter__'):
before = dict([(f, None) for f in files if not f.startswith('.')]) # 初始文件夹中的文件
else:
before = set(files)
files_set = set(files)
if hasattr(path_to_watch, '__iter__'):
added = [f for f in files_set if not f.startswith('.') and f not in before] # 检查是否有新增文件
else:
added = files_set - before
if added:
print("新增文件: ", ", ".join(added)) # 打印新增文件名
else:
print("-1")
```
您需要将 `path_to_watch` 变量替换成您要监控的文件夹路径,然后运行脚本即可。脚本会检查文件夹中是否有新增文件,如果有则打印出文件名,否则打印 `-1`。
相关问题
请写一段python脚本,要求如下: 1.检测某一文件下是否有文件新增,如果有,将此文件名打印出来
好的,这是一个可以实现您要求的Python脚本:
```python
import os
import time
path_to_watch = "/path/to/watch" # 监控的文件夹路径
before = dict([(f, None) for f in os.listdir(path_to_watch)]) # 初始文件夹中的文件
while True:
time.sleep(10) # 每10秒检查一次
after = dict([(f, None) for f in os.listdir(path_to_watch)]) # 当前文件夹中的文件
added = [f for f in after if f not in before] # 检查是否有新增文件
if added:
print("新增文件: ", ", ".join(added)) # 打印新增文件名
before = after # 更新初始文件夹中的文件
```
您需要将 `path_to_watch` 变量替换成您要监控的文件夹路径,然后运行脚本即可。脚本会每10秒检查一次文件夹中是否有新增文件,如果有则打印出文件名。
请写一段python脚本,要求如下: 1.检测SVN某一路径下是否有文件新增,如果有,将此文件名打印出来
可以使用Python的subprocess模块调用svn命令来实现该功能。具体实现如下:
```python
import subprocess
# 设置SVN路径
svn_path = "/path/to/svn"
# 设置SVN路径下要监测的目录
svn_dir = "/path/to/svn/dir"
# 使用svn命令获取指定目录下的所有文件列表
cmd = f"svn list {svn_path}/{svn_dir}"
svn_output = subprocess.check_output(cmd.split())
# 将svn输出结果转换为字符串,并按行分割
svn_files = svn_output.decode().split("\n")
# 遍历所有文件,检查是否有新增文件
for file in svn_files:
# 如果文件名为空,跳过
if not file:
continue
# 使用svn命令获取文件的详细信息
cmd = f"svn info {svn_path}/{svn_dir}/{file}"
file_info = subprocess.check_output(cmd.split())
# 将svn输出结果转换为字符串,并按行分割
file_info_str = file_info.decode().split("\n")
# 遍历文件信息,查找文件状态
for line in file_info_str:
if line.startswith("Node Kind:"):
node_kind = line.split(":")[1].strip()
# 如果文件是新增文件,打印文件名
if node_kind == "file":
print(f"新增文件:{file}")
```
以上代码使用svn命令获取指定目录下的所有文件列表,然后遍历文件列表,使用svn命令获取每个文件的详细信息。在文件详细信息中,可以查找文件的状态信息,如果文件是新增文件,则将文件名打印出来。