IndexError: List index out of range with glob(), rsplit()
IndexError: List index out of range with glob(), rsplit()
我正在尝试执行一个 python 脚本,它给我一个 IndexError。我知道 rsplit() 方法未能拆分字符串。我不完全知道为什么它显示索引超出范围。谁能告诉我如何解决这个问题?
代码
raw_directory = 'results/'
for name in glob.glob(raw_directory + '*.x*'):
try:
#with open(name) as g:
# pass
print(name)
reaction_mechanism = 'gri30.xml' #'mech.cti'
gas = ct.Solution(reaction_mechanism)
f = ct.CounterflowDiffusionFlame(gas, width=1.)
name_only = name.rsplit('\',1)[1] #delete directory in filename
file_name = name_only
f.restore(filename=raw_directory + file_name, name='diff1D', loglevel=0)
输出
如果我删除文件 strain_loop_07.xml,我在删除另一个文件时会遇到同样的错误。
results/strain_loop_07.xml
Traceback (most recent call last):
File "code.py", line 38, in <module>
name_only = name.rsplit('\'1)[1] #delete directory in filename
IndexError: list index out of range
如果 rsplit 未能拆分字符串,它 return 是一个只有一个解决方案的数组,因此 [0] 而不是 [1]
我在回复此 post 时了解到,“名称”变量填充了像“result/strain_loop_07.xml”这样的文本,因此您想用一行将其拆分更喜欢
name_only = name.rsplit('/', 1)[1]
所以你会得到“strain_loop_07.xml”元素,这可能是你想要的,因为 name.resplit('/', 1) return 类似
['result', 'strain_loop_07.xml']
顺便说一下,不要犹豫,中途打印你的变量进行调试,这是经常要做的事情,以了解你的变量在特定时间的状态。就在你分裂之前!
我正在尝试执行一个 python 脚本,它给我一个 IndexError。我知道 rsplit() 方法未能拆分字符串。我不完全知道为什么它显示索引超出范围。谁能告诉我如何解决这个问题?
代码
raw_directory = 'results/'
for name in glob.glob(raw_directory + '*.x*'):
try:
#with open(name) as g:
# pass
print(name)
reaction_mechanism = 'gri30.xml' #'mech.cti'
gas = ct.Solution(reaction_mechanism)
f = ct.CounterflowDiffusionFlame(gas, width=1.)
name_only = name.rsplit('\',1)[1] #delete directory in filename
file_name = name_only
f.restore(filename=raw_directory + file_name, name='diff1D', loglevel=0)
输出
如果我删除文件 strain_loop_07.xml,我在删除另一个文件时会遇到同样的错误。
results/strain_loop_07.xml
Traceback (most recent call last):
File "code.py", line 38, in <module>
name_only = name.rsplit('\'1)[1] #delete directory in filename
IndexError: list index out of range
如果 rsplit 未能拆分字符串,它 return 是一个只有一个解决方案的数组,因此 [0] 而不是 [1]
我在回复此 post 时了解到,“名称”变量填充了像“result/strain_loop_07.xml”这样的文本,因此您想用一行将其拆分更喜欢
name_only = name.rsplit('/', 1)[1]
所以你会得到“strain_loop_07.xml”元素,这可能是你想要的,因为 name.resplit('/', 1) return 类似
['result', 'strain_loop_07.xml']
顺便说一下,不要犹豫,中途打印你的变量进行调试,这是经常要做的事情,以了解你的变量在特定时间的状态。就在你分裂之前!