python3.x - Python3.5报错:获悉当前工作目录中的.py文件?
ringa_lee
ringa_lee 2017-04-17 16:01:23
[Python讨论组]

正在看《编程入门(第三版)》,参考书上想写一个程序查看当前工作目录下的.py文件,却报错,求解答,谢谢。

【代码】

# 只获悉当前工作目录中的.py文件

def list_py(path = None):
    if path == None:
        path = os.getcwd()
        return [fname for fname in os.listdir(path) 
            if os.path.isfile(fname) 
            if fname.endswith('.py')]

【报错】

 File "8.4.1_list.py", line 16
    if os.path.isfile(fname)
    ^
IndentationError: unexpected indent
ringa_lee
ringa_lee

ringa_lee

全部回复(4)
ringa_lee
[fname for fname in os.listdir(path) 
            if os.path.isfile(fname) 
            if fname.endswith('.py')]

这是个python的列表解析。这是一条完整的语句,如果要换行的话,就要在行末加上"\"提示回车符并不是换行。很多语言都有这种写法。
如:

[fname for fname in os.listdir(path) \
            if os.path.isfile(fname) \
            if fname.endswith('.py')]

但是语句不长的话,建议这样写可读性好些。

[fname for fname in os.listdir(path) if (os.path.isfile(fname) and fname.endswith('.py'))]
阿神

缩进出错, 如果没有逗号,在后面加个\

迷茫

纯缩进错误,初学者,建议好好看看这一段

大家讲道理
  • 换行要加\

  • 列表解析只能有一个if

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号