使用os.system

时间:2018-03-16 20:22:20

标签: python-3.x copy

我有几个文件名为关注a_b.nc a_c.nc a_d.nc。 我想使用循环来复制/重命名这些文件。

我尝试使用以下代码:

import os
stations = ["b" , "c" , "d"]
inbasedir = "/home/david/test_pals/PALS/sites_lai/"
varname = "a_"
for station in stations:
    os.chdir(inbasedir)
    os.system("cp ${varname}${station}.nc ${varname}${station}_lai.nc")

代码不产生错误,但同时它根本不产生输出:)

有没有人知道如何产生所需的输出?

1 个答案:

答案 0 :(得分:1)

  

有没有人知道如何产生所需的输出?

您必须将字符串的语法从${varname}${station}修改为类似这样的内容:os.system("cp {0}{1}.nc ${0}${1}_lai.nc".format(varname, station)),这样可行。我会这样做的:

import os
rename = ['f1.txt', 'f2.txt'] # list of files to rename
cur_dir = os.path.dirname(os.path.abspath(__file__)) # the dir with files
files = os.listdir() # list of all files in directory 

for f in files:
    if f in rename:
        os.popen("cp {0} {1}".format(f, f + "_renamed"))

在我目前的目录中,我创建了这些文件f1.txtf2.txt。运行os.popen("cp {0} {1}".format(f, f + "_renamed"))后,我已更改rename列表中的所有文件。

备注:以下是popen的说明以及内容。