Looper由于特殊符号(ö,ä,±)而无法执行pythonscript

时间:2018-09-20 11:20:54

标签: python spyder keyerror file-not-found

使用循环程序脚本多次运行主脚本时遇到问题。主脚本自行运行,并产生所需的输出。现在,我想使用以下循环运行脚本三次:

array = ['case1','case2','case3']
for i in range(0,len(array)):
    exec(open('mainscript.py').read())

它会正确打开并运行脚本的第一部分(几个打印语句最终出现在我的屏幕上)。但是,当我尝试加载名为“Coördinates4hoog”的文件时,找不到该文件:

FileNotFoundError: [Errno 2] No such file or directory: 'path\Coördinates4hoog'

在这种情况下,我更改了输入文件(虽然不理想,但我认为这很容易解决)。我知道在文件名中带有ö这样的符号不是最好的选择,但是在这种情况下,我正在研究先前制作的脚本和数据文件。

要点是,在脚本中它还会加载带有±号的纬度/经度数据。我无法更改此数据类型,因为它是从外部数据库反复获取的。我收到以下错误:

KeyError: "['Latitude ±dd,dddddd' 'Longitude ±ddd,dddddd'] not in index"

即使looper脚本正确地从顶部运行主脚本(自己运行),它似乎也无法识别这些特殊符号。有任何经验吗?

1 个答案:

答案 0 :(得分:1)

在这种情况下,将特殊符号更改为Unicode字符对我有用。因此,如果遇到类似的问题,请使用类似的方法。

所以:

<input class="button-option" type="number" ng-model="data.sum">

成为:

$scope.data = { sum: ... };

并且:

df_road_coords = pd.read_pickle(filefolder + 'Coördinates4hoog')road 

成为:

df_road_coords = pd.read_pickle(filefolder + 'Co'+u"\u00F6"+'rdinates4hoog')

对我来说,仍然使用相同的模块和版本的循环脚本无法处理自己运行的另一个脚本中的符号仍然很困难。