如何使用当前Python脚本文件的名称将文件保存到文件夹?

时间:2017-09-21 22:36:34

标签: python-3.x path save

我有一个Python 3 test.py脚本,其中创建了一些数据,我想将其保存到具有用户定义名称的文件,例如data.csv。此脚本所在的文件夹中包含/Results文件夹。我想要做的是在Results内创建一个子文件夹,其中包含当前脚本的名称,并将我的文件存储在其中。所以,我想要的是我的文件存储在./Results/test/data.csv中。我想要创建这些文件夹,如果它们以前不存在,如果它们确实存在,那么我希望data.csv被替换。我希望这适用于任何操作系统。应该怎么做“pythonically”?

~/
  test.py
  Results/
     test/
        data.csv

这是一个测试代码,其中data.csv未保存在我想要的位置。我该如何编辑?

import pandas as pd

filename = "data.csv"
df = pd.DataFrame([1,2,3])
df.to_csv(filename)

2 个答案:

答案 0 :(得分:0)

我会用:

import platform
import os

if platform.system().lower() == 'windows':
    print("%s" % os.path.expandvars("%USERPROFILE%"))
elif platform.system().lower() == 'posix':
    print("%s" % os.path.expandvars("$PATH")) #or some other posix var like USER...
else:
    print("What the heck type of os is this?!?")

我认为this也可能对您有用。

答案 1 :(得分:0)

您可以使用os.path模块进行一系列文件夹检查,并在不存在的情况下创建文件夹。然后,您可以使用__file__属性访问当前文件名。

import os.path
import pandas as pd

file_name = os.path.splitext(os.path.basename(os.path.realpath(__file__)))[0]

full_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "Results")

if not os.path.exists(full_path):
    os.mkdir(full_path)

    if not os.path.exists(os.path.join(full_path, file_name)):
        os.mkdir(os.path.join(full_path, file_name))

file_location = os.path.join(full_path, file_name, 'data.csv')

df = pd.DataFrame([1, 2, 3])
df.to_csv(file_location)