【问题标题】:Print directory where file is saved with Python打印用 Python 保存文件的目录
【发布时间】:2016-10-03 15:51:41
【问题描述】:

如何打印我用 python 保存的文件的路径目录。 例如,我从 idle3 (Fedora 24) 开始,我将 IDLE 代码保存在:/home/jetson/Desktop/Python/Programs 并在代码中写入:

f = open("Hello.txt","w")
f.write("This is a test","\n")
f.close()

我的问题是:在 f.close 之后我会打印用

抓取的目录
import sys.os 

print("The file is saved in ",direcotrysaved)

有可能吗?

【问题讨论】:

  • @SSNR 这给出了当前.py 文件的路径,它不一定是open 将打开文件的位置。

标签: python python-3.x


【解决方案1】:

将相对路径转换为绝对路径:

path = os.path.abspath(filename)

然后只取绝对路径中的目录:

directory = os.path.dirname(path)

不管filename 是什么,它都可以工作。它可以只是一个文件名、一个相对路径或绝对路径。

其他有用的功能见os.path documentation

【讨论】:

    【解决方案2】:

    如果没有给出路径,则在当前工作目录中打开文件。这是由os.getcwd() 返回的。

    【讨论】:

      【解决方案3】:

      您可以使用os.getcwd() 获取当前工作目录:

      import os
      
      os.getcwd()
      

      否则,您也可以在打开文件时指定文件的完整路径,例如

      f.open('/path/to/the/folder/Hello.txt', 'w')
      

      【讨论】:

        【解决方案4】:

        如果您没有将文件名作为单独的变量提供,则使用 f.name 会提供文件名。
        使用 os.path.abspath() 提供完整的文件名,包括它的目录​​路径,即在本例中为“/home/rolf/def”
        正如您已经知道的那样,使用os.path.dirname() 会从路径中删除文件名。

        >>> import os
        >>> f=open('xxxx.txt','w')
        >>> f.close()
        >>> print(f.name,'Stored in', os.path.dirname(os.path.abspath(f.name)))
        
        xxxx.txt Stored in /home/rolf/def
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-06
          • 2021-08-03
          • 2019-08-02
          • 2016-08-17
          • 2016-11-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多