python - 检查Python中的输入和输出文件是否相同

标签 python

我有一个 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/

相关文章:

python - 如何使用 webDriver(python)最大化 chrome 中的窗口

python - 如何在 Python 中将环境变量评估为字符串?

python - 将 pandas 选定的列转换为 2D numpy 数组

python - 在django中查询数组

python - 模型继承和RSS Feed框架

python - "Asyncio Event Loop is Closed"获取循环时

python - Docker 上运行的 Django 中的加密错误

python - Pandas 基础设施数据统计图,每个用户的日期

python - 在Python中绘制条形图

python - 导入的类从全局变量填充属性