2

在 python 2.7.2 中,我需要在 Linux 中制作一个文件的副本。

新文件 = "namePart1" + 字典 [key] + "namePart2"

os.system("cp cfn5e10_1.lp 新文件")

但是,新文件不能被其正确的字符串替换。

论坛中的帖子无济于事。

非常感谢任何帮助。

4

3 回答 3

12

用于shutil.copyfile复制文件而不是os.sytem,它不需要创建新进程,它会自动处理其中包含不寻常字符的文件名,例如空格 -os.system只需将命令传递给 shell,shell 可能会分解文件名其中有空格,以及其他可能的问题。

例如:

newfile = "namePart1" + dictionary[key] + "namePart2"
shutil.copyfile("cfn5e10_1.lp", newfile)
于 2012-07-20T17:57:09.007 回答
4

这不会替换newfile为您的变量。

os.system("cp cfn5e10_1.lp newfile")

您需要将变量连接到字符串的末尾,如下所示:

os.system("cp cfn5e10_1.lp " + newfile)
于 2012-07-20T17:57:40.587 回答
1

如果cp要从 Python 调用,请使用该subprocess模块:

subprocess.call(["cp", "cfn5e10_1.lp", "newfile"])

但最好使用shutil模块中的函数。

于 2012-07-20T22:52:05.767 回答