【问题标题】:Copy a file with a certain string in the filename in python在python中的文件名中复制具有特定字符串的文件
【发布时间】:2015-12-13 16:58:59
【问题描述】:

我需要复制一个包含一些字符串的文件,称为mystring,在文件名中从一个目录到另一个目录。目前我使用

for file in glob.glob(FileNameM):
        shutil.copy(file, dest);

其中dest 是目标目录,并且

FileNameM = source_directory + some_known_string + mystring + "*"

当仅在mystring 之后有扩展名时,此代码可以正常工作,但如果有其他内容加上扩展名,则代码会失败。

示例FileNameM 有效:

/home/eugene/GDrive/Project-related/Skyrmion_Lattice_Output/Output_Good_Enough/Parameters__triangular_N_225_kappa_1.0_beta_0.11_a_3.63311050137*

并指向文件

/home/eugene/GDrive/Project-related/Skyrmion_Lattice_Output/Output_Good_Enough/Parameters__triangular_N_225_kappa_1.0_beta_0.11_a_3.63311050137.dat

示例FileNameM 不起作用:

/home/eugene/GDrive/Project-related/Skyrmion_Lattice_Output/Output/Parameters__triangular_N_225_kappa_1.0_beta_0.12_a_3.6341634222*

这将导致文件

/home/eugene/GDrive/Project-related/Skyrmion_Lattice_Output/Output/Parameters__triangular_N_225_kappa_1.0_beta_0.12_a_3.63416342223.dat

你知道我该如何改进吗?

【问题讨论】:

  • 您能否举例说明一个可行的路径和一个无助于重现您的问题的路径?
  • 在正文中添加示例

标签: python file copy wildcard shutil


【解决方案1】:

我刚刚使用您的示例文件名进行了尝试,并通过glob.glob() 获得了两个文件名,即使缺少更多字符:

import glob
    FileNameM = 'test\Parameters__triangular_N_225_kappa_1.0_beta_0.12_a_3.6341634*'
    for file in glob.glob(FileNameM):
        print(file)
# test\Parameters__triangular_N_225_kappa_1.0_beta_0.12_a_3.63416342223.dat

在 Windows 上运行;一个虚拟文件位于脚本旁边的子文件夹 test 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2020-09-20
    • 2016-02-16
    相关资源
    最近更新 更多