我有一个 python 脚本,它接受两个参数,即输入和输出文件的名称,即它的开头是这样的
inputFile=open(sys.argv[1],'r')
outFile=open(sys.argv[2],'w')
然后执行从 inputFile 读取并写入 outFile 的任何操作。
现在,由于人为错误,我有几次不小心给出了相同的参数两次,结果是我的输入文件被空行替换。有没有直接的方法来阻止这种情况发生?
我认为这可能就像添加一样简单
if sys.argv[1]==sys.argv[2]:
inputFile.close()
outFile.close()
紧接在上面第一行之后,但这已经使文件留空。
最佳答案
简单地做:
import os
if os.path.realpath(sys.argv[1]) != os.path.realpath(sys.argv[2]):
inputFile=open(sys.argv[1],'r')
outFile=open(sys.argv[2],'w')
else:
raise ValueError('Input and output files are the same')
这将通过引发不会破坏您的输入文件的欢迎错误来防止人为错误。
os.path.realpath
会将任何相对路径转换为绝对路径,这样,即使字符串不同,当绝对路径相同时也可以引发错误(感谢@Jean-弗朗索瓦·法 bool 提醒我这一点)
关于python - 检查Python中的输入和输出文件是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44926796/