Python教程

译(四十一)-Python从路径中获取文件名

本文主要是介绍译(四十一)-Python从路径中获取文件名,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章首发及后续更新:https://mwhls.top/3381.html
新的更新内容请到mwhls.top查看。
无图/无目录/格式错误/更多相关请到上方的文章首发页面查看。

stackoverflow热门问题目录

如有翻译问题欢迎评论指出,谢谢。

目录 1. Python 如何从路径中获取没有拓展名的文件名? 2. How to get the filename without the extension from a path in Python?

Python 如何从路径中获取没有拓展名的文件名?

  • Joan Venge asked:

    • Python 中如何获取不包括拓展名的文件名?
    • 例如这个路径 /path/to/some/file.txt 里的 file
  • Answers:

    • Geo – vote: 1561

    • 得到不包括拓展名的文件名:

    • import os
      
      print(os.path.splitext("/path/to/some/file.txt")[0])

  • 输出:

  • /path/to/some/file
  • Documentation for os.path.splitext.
    文档: os.path.splitext.

  • 特别注意:如果文件名有多个点,只有最后一个代表拓展的点会被去除。
    例如:

  • import os
    print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
  • 输出:

  • /path/to/some/file.txt.zip
  • 如果需要处理这种情况,可以看其他人的回答。
    注:这篇翻译的三个回答没有涉及到这个情况。

  • mxdbld – vote: 792

  • 在 Python 3.4+ 中可以使用 pathlib 中的 .stem

  • from pathlib import Path
    
  • Path(’/root/dir/sub/file.ext’).stem

  • 将返回

  • 'file'
  • 注意,如果文件有多个拓展名,.stem 只会移除最后一个。例如, Path('file.tar.gz').stem 将会返回 'file.tar'

  • gimel – vote: 705

  • 这样坐:

  • >>> import os
    >>> base=os.path.basename('/root/dir/sub/file.ext')
    >>> base
    'file.ext'
    >>> os.path.splitext(base)
    ('file', '.ext')
    >>> os.path.splitext(base)[0]
    'file'
  • 特别注意:如果文件名中有超过一个 . ,只有最后一个会被移除。例如:

  • /root/dir/sub/file.ext.zip -> file.ext
    
  • /root/dir/sub/file.ext.tar.gz -> file.ext.tar

  • 见其它回答来解决这个问题。
    注:这篇翻译的三个回答没有涉及到这个情况。


  • How to get the filename without the extension from a path in Python?

    • Joan Venge asked:

      • How to get the filename without the extension from a path in Python?
        Python 中如何获取不包括拓展名的文件名?
      • For instance, if I had /path/to/some/file.txt, I would want file.
        例如这个路径 /path/to/some/file.txt 里的 file
    • Answers:

      • Geo – vote: 1561

      • Getting the name of the file without the extension:
        得到不包括拓展名的文件名:

      • import os
        print(os.path.splitext("/path/to/some/file.txt")[0])
      • Prints:
        输出:

      • /path/to/some/file
      • Documentation for os.path.splitext.
        文档: os.path.splitext.

      • Important Note: If the filename has multiple dots, only the extension after the last one is removed. For example:
        特别注意:如果文件名有多个点,只有最后一个代表拓展的点会被去除。
        例如:

      • import os
        print(os.path.splitext("/path/to/some/file.txt.zip.asc")[0])
      • Prints:
        输出:

      • /path/to/some/file.txt.zip
      • See other answers below if you need to handle that case.
        如果需要处理这种情况,可以看其他人的回答。
        注:这篇翻译的三个回答没有涉及到这个情况。

      • mxdbld – vote: 792

      • Use .stem from pathlib in Python 3.4+
        在 Python 3.4+ 中可以使用 pathlib 中的 .stem

      • from pathlib import Path
        

    Path(’/root/dir/sub/file.ext’).stem

  • will return
    将返回

  • 'file'
  • Note that if your file has multiple extensions .stem will only remove the last extension. For example, Path('file.tar.gz').stem will return 'file.tar'.
    注意,如果文件有多个拓展名,.stem 只会移除最后一个。例如, Path('file.tar.gz').stem 将会返回 'file.tar'

  • gimel – vote: 705

  • You can make your own with:
    这样坐:

  • >>> import os
    >>> base=os.path.basename('/root/dir/sub/file.ext')
    >>> base
    'file.ext'
    >>> os.path.splitext(base)
    ('file', '.ext')
    >>> os.path.splitext(base)[0]
    'file'
  • Important note: If there is more than one . in the filename, only the last one is removed. For example:
    特别注意:如果文件名中有超过一个 . ,只有最后一个会被移除。例如:

  • /root/dir/sub/file.ext.zip -> file.ext
    
  • /root/dir/sub/file.ext.tar.gz -> file.ext.tar

  • See below for other answers that address that.
    见其它回答来解决这个问题。
    注:这篇翻译的三个回答没有涉及到这个情况。

这篇关于译(四十一)-Python从路径中获取文件名的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!