python - 这个 TypeError 来自哪里?(将肌动蛋白用于恒星活动指数)类型错误:预期的 str、字节或 os.PathLike 对象,而不是 bool
问题描述
我正在使用可以在这里找到的包:https ://github.com/gomesdasilva/ACTIN来查找二进制系统的活动索引。最初,我在 spyder 上的独立测试文件上运行了代码,一切似乎都运行良好:
import actin.actin as actin
actin.actin("C://Users//Rp199/Desktop//J0608_59_harps_2018//HARPS.2019-08-22T08_37_32.360_s1d_A.fits",
calc_index=['I_CaII'], rv_in=None,
config_file="C:\\Users\\Rp199\\anaconda3\\Lib\\site-packages\\actin\config_lines.txt",
save_output=True, ln_plts=False, obj_name=False, targ_list='J0608-59',
del_out=False, frac=True, test=False, save_plots=False)
EXECUTING ACTIN_FILE
--------------------
Executing: check_targ
Targets = J0608-59
Object = J0608-59
LOADING DATA FROM CONFIG FILE
-----------------------------
CaIIK
CaIIH
CaIIR1
CaIIR2
READING DATA FROM FILE:
-----------------------
Working folder: C://Users//Rp199/Desktop//J0608_59_harps_2018\
Reading file: HARPS.2019-08-22T08_37_32.360_s1d_A.fits
Telescope: ESO-3P6
Instrument: HARPS
Object: J0608-59
*** WARNING: Could not find or open:
*** C://Users//Rp199/Desktop//J0608_59_harps_2018\HARPS.2019-08-22T*_ccf_*_A.fits
*** WARNING: No CCF data available.
*** WARNING: Could not find or open:
*** C://Users//Rp199/Desktop//J0608_59_harps_2018\HARPS.2019-08-22T*_bis_*_A.fits
*** WARNING: No BIS data available.
*** ERROR: No rv data available to calibrate wavelength.
---------------------------------
Fractional pixels: True
Files analysed: 1
Save output: True
Elapsed time: 0.0013 min
输出表明它没有正确的 CCF 和 BIS 文件。
我现在尝试在另一个 fit 文件上运行代码,但是,在这个文件夹中有 BIS 和 CCF 文件并接收输出:
READING DATA FROM FILE:
-----------------------
Working folder: C://Users//Rp199//Desktop//DATA_NEW\
Reading file: HARPS.2019-01-20T05_16_29.969_s1d_A.fits
Telescope: ESO-3P6
Instrument: HARPS
Object: J0608-59
CCF file: HARPS.2019-01-20T05_16_29.969_ccf_G2_A.fits
BIS file: HARPS.2019-01-20T05_16_29.969_bis_G2_A.fits
Executing check_duplicate:
Traceback (most recent call last):
File "C:\Users\Rp199\Desktop\actintest.py", line 10, in <module>
actin.actin("C://Users//Rp199//Desktop//DATA_NEW//HARPS.2019-01-20T05_16_29.969_s1d_A.fits",
File "C:\Users\Rp199\anaconda3\lib\site-packages\actin\actin.py", line 225, in actin
output = actin_file(files_list[k][i][j],
File "C:\Users\Rp199\anaconda3\lib\site-packages\actin\actin.py", line 92, in actin_file
dupl = ac_save.check_duplicate(data['obj'], data['obs_date'], data['instr'], data['file_type'], save_output)
File "C:\Users\Rp199\anaconda3\Lib\site-packages\actin\actin_files\ac_save.py", line 45, in check_duplicate
pfile_name = os.path.join(out_dir, obj, file_name)
File "C:\Users\Rp199\anaconda3\lib\ntpath.py", line 78, in join
path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not bool
我对为什么会发生此错误感到困惑,尤其是在使用同一文件夹中没有任何 CCF 或 BIS 文件的独立文件进行测试时,没有错误。
谢谢
解决方案
在仔细阅读回溯后,可以看到如果save_output
参数不是其他任何东西,False
它必须是指定输出目录的字符串。这是不明显的,因为它没有写在文档字符串中,并且该参数的默认值False
表明它也可以True
在您传递时采用。但是这个包的代码正在做一些非惯用的事情,这可能会导致其他问题。如果我有时间,我会联系它的作者,看看我是否可以提供任何改进建议。
推荐阅读
- oracle - 如何在 PL/SQL 中创建可以创建限制的触发器,以便它们只能放置 1 个字符?
- python - 在while循环中列出索引超出范围
- c# - 如何使用 LINQ Select 调用异步 Lamba 表达式?
- python - docker容器中的Django项目无法运行manage.py runserver
- java - 使用对象映射器从 JsonNode 返回一个通用列表?
- node.js - 如何在 React.js 应用程序中从 BigQuery 获取数据?
- cmd - Ping 结果在记事本中
- go - 在正确的结构中转换 json 而不是使用接口
- php - Wordpress Woocommerce 在我的帐户页面中添加自定义表单
- python - 如何在熊猫数据框中删除 ['']