python - 使用 IDLE 运行与运行脚本

标签 python windows bioinformatics vcf-variant-call-format

所以我有一些 Python 代码(运行 Python 2.7.12),它使用 VEP 根据特定的记录来注释 vcf 文件。

当我通过双击脚本运行脚本(或从命令提示符运行它)时,会出现以下错误:

C:\annotatetsca_KH\annotate.py:364: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal

if transcript in specified_transcripts:

这会导致某些变体无法根据指定的转录本进行注释。但是,如果我将脚本加载到 IDLE 中,然后通过 IDLE 运行完全相同的代码,则不会收到此错误,并且变体已正确注释。

有谁知道为什么通过 IDLE 运行脚本会产生不同的结果?据我所知,以及从我采访过的一些同事那里得知,IDLE 和 Python 对待一切事物的态度应该完全相同。有谁知道一种方法可以避免必须通过 IDLE 运行脚本来避免此错误,因为许多不熟悉 Python/IDLE 的人都使用此脚本,并且会发现运行脚本要容易得多双击它(像任何其他 Windows 应用程序一样)。

编辑(已解决):

我找到了问题的原因。成绩单列表中的一些成绩单末尾有一个空格。 IDLE 似乎会去除尾随空格,但直接运行 python 脚本却不会。因此,当直接运行它时,尾随空格会转换为“\xa0”,因此当它尝试将转录本与指定列表中的转录本进行匹配时,它不匹配。我已经删除了所有空格并且工作正常,并且我还将添加一行以在加载成绩单列表时删除所有空格!

最佳答案

我找到了问题的原因。成绩单列表中的一些成绩单末尾有一个空格。 IDLE 似乎会去除尾随空格,但直接运行 python 脚本却不会。因此,当直接运行它时,尾随空格会转换为“\xa0”,因此当它尝试将转录本与指定列表中的转录本进行匹配时,它不匹配。我已经删除了所有空格并且工作正常,并且我还将添加一行以在加载成绩单列表时删除所有空格!

关于python - 使用 IDLE 运行与运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50529522/

相关文章:

r - 使用 SNP 等位基因数据为 ACGT 创建概率矩阵

conda - 无法在 Mac 上安装 Bioconda 软件包

python - Python 生成器可以非延迟调用吗?

python - 子类 HttpResponse 以在 Django 中获取 JSON 输出

python - 如何让 python 的 MagicMock 在第一次调用时返回一个值并在第二次调用时引发异常?

windows - 在 Windows 和 OS X 中设置 FPU

r - 从 VCF 文件中提取样本数据

python - Python 3 中小数到 2 位的钱

c++ - 什么是沙盒

asp.net - 如何使用 Process Monitor 确定哪个 DLL 导致 BadImageFormatException