首页 > 解决方案 > 使用 raw_input 指定特定文件以创建其备份的副本并更改备份和原始文件的文件名

问题描述

我正在努力设置一个从文件夹中已经存在的备份文件创建新文件的过程。我的程序目前可以运行,但我想尽可能多地消除用户输入,这样你所要做的就是输入刚刚崩溃的文件名,然后看程序完成剩下的工作。我在 python 方面相当新,并且一直无法找到一种方法来让初始 raw_input 作为程序其余部分运行的基础。我已经上传了我目前完成这项工作的代码,因此任何有助于我改进此代码的提示将不胜感激。

谢谢!

import os
import copy
import shutil

def copy_vrb():
    #Creates a copy of a specific "Filename.vrb" which gets renamed to "Filename_COPY.vrb"
    oldvrb=raw_input("Enter the .vr filename you were working on before it crashed: ") # With file extension
    newvrb=raw_input("Rename the new .vrb file to Filename_COPY")
    shutil.copy(oldvrb, newvrb + ".vrb") # Without file extension
copy_vrb()

def file_rename():
    # Takes original "Filename.vr" that crashed, and changes the filename to "Filename_BAD.vr".
    oldname=raw_input("Enter the Filename.vr that you were working on before it crashed: ") # With file extension
    newname=raw_input("Rename the file as Filename_BAD")
    os.rename(oldname, newname + ".vr")
file_rename()

def rename_copy():
    # Renames Filename_COPY.vrb to Filename_NEW.vr
    oldname=raw_input("Enter the Filename_COPY.vrb: ") # With file extension
    newname=raw_input("Rename to Filename_NEW: ") # Without file extension
    os.rename(oldname, newname, +".vr")
rename_copy()

在我要处理的数据文件夹中,我有多对文件,(10001.vr(会崩溃的文件)和 10001.vrb(在 VR 映射中打开文件时创建的备份)我想要的是能够输入崩溃的特定文件。

  1. 创建10001.vrb文件的副本---> 10001_COPY.vrb
  2. 更改 10001.vr 文件 ---> 10001_BAD.vr
  3. 最后将 10001_COPY.vrb 文件更改为新的可用文件 ---> 10001_NEW.vr

标签: pythonpython-2.7

解决方案


一种方法是接受文件名作为命令行输入,而不是执行 raw_input()。 https://www.pythonforbeginners.com/system/python-sys-argv

import os
import copy
import shutil

def copy_vrb(oldvrb):
    newvrb = os.path.splitext(oldvrb)[0] + "_COPY" 
    shutil.copy(oldvrb, newvrb + ".vrb") # Without file extension


oldvrb=raw_input("Enter the .vr filename you were working on before it crashed: ") 
copy_vrb(oldvrb)

然后你为其他功能做剩下的事情。


推荐阅读