在Python中使用时间戳重命名将文件移动到子目录

时间:2019-06-28 11:22:29

标签: python python-2.7

我需要将文件复制到名称更改为ArrayFormula(E2:E*D2:D)的子目录中(通过添加时间戳)。

我在CSV文件上使用了COPY name_timestamp,复制完成后,我需要将CSV文件移动到子目录并将其重命名为method

下面是示例代码。谁能帮助我或建议我如何做?

CSV_timestamp

3 个答案:

答案 0 :(得分:0)

这应该像完成操作时将目标路径设置为所需目录一样简单。

例如,假设您的文件位于users / foo / bar / myfile.csv中(这就是您的src路径)。假设您希望在users / mydocuments / bar / foo / mynewfile.csv中复制该文件(这是您的dest路径)。

您需要做的只是:

import shutil
import os
src = 'users/foo/bar/myfile.csv'
tstamp = os.path.getmtime(path)
dest = 'users/mydocuments/bar/foo/mynewfile' + tstamp + '.csv'
shutil.move(src,dest)

答案 1 :(得分:0)

遵循您的方法(使用检查目录是否存在的功能等),您可以执行以下操作:

import os
import shutil
from time import gmtime, strftime

def copyFile(old_path, new_directory):
   # check if the directory already exists
    if not os.path.exists(new_directory):
        os.mkdir(new_directory)
        print(f"Directory {new_directory} Created.")
    else:    
        print(f"Directory {new_directory} already exists.")

    # create new path from new_directory, the filename and the timestamp
    new_path = new_directory + old_path.split("/")[len(old_path)-1].split(".")[0] + strftime("%Y_%m_%d", gmtime()) + ".csv"

    # copy the file to the new path
    try:
        shutil.copy(old_path, new_path)
    # eg. src and dest are the same file
    except shutil.Error as e:
        print(f"Error: {e}")
    # eg. source or destination doesn't exist
    except IOError as e:
        print(f"Error: {e.strerror}")

old_path = '/path/to/directory/file.csv'
new_directory = '/path/to/new/directory/'

copyFile(old_path, new_directory)

请注意

  1. 从Python 3.6开始,您可以使用f字符串更轻松地在字符串中包含变量。
  2. 我不清楚您要寻找哪种时间戳。 这种方法将为您提供YYYY_MM_DD格式的邮票 当天的日期,但您可以轻松更改该日期,请参阅 time软件包中的documentation
  3. 使用shutil.copy之后,您不再需要shutil.move,因为 第一个已经复制您的文件并将其保存到目标位置 路径。

答案 2 :(得分:-1)

您可以使用os.rename()代替

import time
timestamp_name=int(time.time())
os.rename('path/to/file/name.text','path/to/file/'+timestamp_name+'.txt)