python - 使用 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 映射中打开文件时创建的备份)我想要的是能够输入崩溃的特定文件。
- 创建10001.vrb文件的副本---> 10001_COPY.vrb
- 更改 10001.vr 文件 ---> 10001_BAD.vr
- 最后将 10001_COPY.vrb 文件更改为新的可用文件 ---> 10001_NEW.vr
解决方案
一种方法是接受文件名作为命令行输入,而不是执行 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)
然后你为其他功能做剩下的事情。
推荐阅读
- r - 使用 Shiny 中的可格式化表格手动设置条件格式边界
- java - 设置计数项目
- python - 如何更改熊猫数据框中的浮点数(科学值)?
- python - Django 2.0 URL:配置 urls.py 文件
- spring-boot - Spring Boot ws 中的内联 xsd 导入导致来自所有 wsdl 的消息类型和操作
- c++ - 如何声明用不同值内联初始化的结构的 std::array
- c++ - 在 C++ 中模拟 if __name__ == __main__ 会导致错误“未定义类似函数的宏”
- php - auth0 401 错误,在尝试身份验证代码交换时进行身份验证
- active-directory - GPO 已应用但未显示
- mysql - str_to_date 不能在一个数据库上工作,而在另一个数据库上工作正常