在 python 中复制文件名中包含特定字符串的文件
Copy a file with a certain string in the filename in python
我需要复制一个包含一些字符串的文件,在文件名中将其命名为 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
你知道我该如何改进吗?
我刚刚用你的示例文件名尝试了它,并通过 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
中有一个虚拟文件。
我需要复制一个包含一些字符串的文件,在文件名中将其命名为 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
你知道我该如何改进吗?
我刚刚用你的示例文件名尝试了它,并通过 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
中有一个虚拟文件。