python - 让 os.path.join 与生成器一起工作?

标签 python

为了让这行代码正常工作,无论我如何更改格式,我都会遇到问题:

if not os.path.exists(os.path.join(IncludeSettings.FILE_URL, [str(x) for x in [year, month, day]])):

(year, month, day) 可以是整数或字符串。

回溯:

Traceback (most recent call last):
  File "/home/tinyup/dev/lib/python2.7/site-packages/pyramid_debugtoolbar-1.0.3-py2.7.egg/pyramid_debugtoolbar/toolbar.py", line 117, in toolbar_tween
    response = _handler(request)
  File "/home/tinyup/dev/lib/python2.7/site-packages/pyramid_debugtoolbar-1.0.3-py2.7.egg/pyramid_debugtoolbar/panels/performance.py", line 55, in resource_timer_handler
    result = handler(request)
  File "/home/tinyup/dev/lib/python2.7/site-packages/pyramid-1.4a3-py2.7.egg/pyramid/tweens.py", line 20, in excview_tween
    response = handler(request)
  File "/home/tinyup/dev/lib/python2.7/site-packages/pyramid-1.4a3-py2.7.egg/pyramid/router.py", line 161, in handle_request
    response = view_callable(context, request)
  File "/home/tinyup/dev/lib/python2.7/site-packages/pyramid-1.4a3-py2.7.egg/pyramid/config/views.py", line 342, in rendered_view
    result = view(context, request)
  File "/home/tinyup/dev/lib/python2.7/site-packages/pyramid-1.4a3-py2.7.egg/pyramid/config/views.py", line 456, in _class_requestonly_view
    response = getattr(inst, attr)()
  File "/home/tinyup/dev/tinyuploads/tinyuploads/views/share.py", line 56, in view_process
    return self.handle_file_upload(self.request.params['file'], shareID)
  File "/home/tinyup/dev/tinyuploads/tinyuploads/views/share.py", line 101, in handle_file_upload
    self.save(file, newFileName, isImage, uploadTime)
  File "/home/tinyup/dev/tinyuploads/tinyuploads/views/share.py", line 166, in save
    if not os.path.exists(os.path.join(IncludeSettings.FILE_URL, [str(x) for x in [year, month, day]])):
  File "/home/tinyup/dev/lib/python2.7/posixpath.py", line 66, in join
    if b.startswith('/'):
AttributeError: 'list' object has no attribute 'startswith'

最佳答案

你在这里错过了'*':

>>> os.path.join('foo', *['a','b'])
'foo/a/b'

为了将列表项作为解压缩的变量参数列表传递给方法,您必须在此处使用星号运算符。

关于python - 让 os.path.join 与生成器一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13927122/

相关文章:

python - 使用 float 作为键时 pandas merge_asof 错误

python - 从数组中获取行中元素满足条件的索引

python - 在 python 中从列表中删除类实例有困难

python - Groupby pandas 系列中具有相同键的连续元素

python - 从数据库循环 svg 矩形

python - 为什么控制台说我的 print "".join(row) 函数有问题?

python - Django错误: django. core.exceptions.ImproperlyConfigured:加载MySQLdb模块时出错

python - 从哪个 Python 3 API 开始?

python - 根据标志终止 python 线程

python - 我想在Python中将分类变量转换为数值