使用 shutil 有条件地移动文件
Moving files conditionally using shutil
我正在尝试将文件从源目录移动到 linux 中的目标目录,这些文件以 .text
扩展名结尾,时间戳使用 shutil
但有些工作不正常,看来我做错了什么。
下面是文件所在的源目录:
$ ls -l /samba/smb_out/
-rw-r-----. 1 user1 tam 266852 Dec 16 21:41 fostert.20201215.text
-rw-r-----. 1 user1 tam 266852 Dec 16 21:41 fostert.20201216.text
测试代码:
>>> tm_src = time.strftime("%Y%m%d")
>>> tm_dst = time.strftime("%Y%m%d-%H:%M:%S")
>>> src = "/samba/smb_out/"
>>> dst = "/samba/script_logs/"
>>> outfile = ( src + tm_src + ".text")
>>> text_files = [el for el in os.listdir(src) if el.endswith(".text") and path.isfile(path.join(src, el))]
>>> for file in text_files:
shutil.move(path.join(src, file ), dst + "-" + tm_dst + ".log")
'/samba/script_logs/-20201216-21:32:59.log'
'/samba/script_logs/-20201216-21:32:59.log'
想要的应该是:
'/samba/script_logs/fostert.20201215.text-20201215-21:32:59.log'
'/samba/script_logs/fostert.20201215.text-20201216-21:32:59.log'
知道我做错了什么吗。
下面应该适合您,您只是错过了 for 循环中的 file
。
>>> for file in text_files:
shutil.move(path.join(src, file ), dst + file + "-" + tm_dst + ".log")
我正在尝试将文件从源目录移动到 linux 中的目标目录,这些文件以 .text
扩展名结尾,时间戳使用 shutil
但有些工作不正常,看来我做错了什么。
下面是文件所在的源目录:
$ ls -l /samba/smb_out/
-rw-r-----. 1 user1 tam 266852 Dec 16 21:41 fostert.20201215.text
-rw-r-----. 1 user1 tam 266852 Dec 16 21:41 fostert.20201216.text
测试代码:
>>> tm_src = time.strftime("%Y%m%d")
>>> tm_dst = time.strftime("%Y%m%d-%H:%M:%S")
>>> src = "/samba/smb_out/"
>>> dst = "/samba/script_logs/"
>>> outfile = ( src + tm_src + ".text")
>>> text_files = [el for el in os.listdir(src) if el.endswith(".text") and path.isfile(path.join(src, el))]
>>> for file in text_files:
shutil.move(path.join(src, file ), dst + "-" + tm_dst + ".log")
'/samba/script_logs/-20201216-21:32:59.log'
'/samba/script_logs/-20201216-21:32:59.log'
想要的应该是:
'/samba/script_logs/fostert.20201215.text-20201215-21:32:59.log'
'/samba/script_logs/fostert.20201215.text-20201216-21:32:59.log'
知道我做错了什么吗。
下面应该适合您,您只是错过了 for 循环中的 file
。
>>> for file in text_files:
shutil.move(path.join(src, file ), dst + file + "-" + tm_dst + ".log")