Python错误:OSError:[Errno 22]参数无效

时间:2013-06-30 16:40:56

标签: python error-handling

我正在使用自动化框架,经过多次迭代后我得到随机错误,如下所示。有人可以帮我理解这可能对应的内容!!

_os.environ['PATH'] = r'C:\DAL;' + _os.environ['PATH']
  File "c:\Python26\lib\os.py", line 420, in __setitem__
    putenv(key, item)
OSError: [Errno 22] Invalid argument

函数调用失败的地方:

功能:

    plugin_xml_file_name = plugin_name
else:
    plugin_xml_file_name = plugin_path + "\\" + plugin_name
#

_os.environ['PATH'] = r'C:\Intel\DAL;' + _os.environ['PATH']
_os.environ['PATH'] = r'C:\intel\dal;' + _os.environ['PATH']
_os.environ['PATH'] = _lakemore_path + ';' + _os.environ['PATH']
_os.environ['PATH'] = plugin_path + ';' + _os.environ['PATH']

3 个答案:

答案 0 :(得分:2)

您创建的路径太长,操作系统不再接受更长的环境变量。

一次扩展路径。测试您添加的路径是否存在:

path = _os.environ['PATH'].split(_os.pathsep)
for extra in (r'C:\Intel\DAL', r'C:\intel\dal', _lakemore_path, plugin_path):
    if extra not in path:
        _os.environ['PATH'] = _os.pathsep.join(extra, _os.environ['PATH'])

此代码仅添加新元素(如果尚未存在)。

答案 1 :(得分:1)

在路径的最后"/"中再添加一个"/",例如: open('C:\Python34\book.csv')open('C:\Python34\\\book.csv')

答案 2 :(得分:0)

避免在目录路径中包含\ a,\ b,\ t,\ n,\ r等特殊字符。而是在必要时使用双斜杠。像\ a,\ b,\ t,\ n,\ r。

例如FILEPATH:E:\android\new_dir\raw_data\books\Harry.csv应该写成 E:\\android\\new_dir\\raw_data\\books\Harry.csv