打开相对路径并写作

时间:2019-04-24 22:02:24

标签: python filepath

def generate_log(dirname, log_object):
    print(os.path.dirname(__file__),'dfsdfds')
    print(os.listdir())
    for smell in log_object:  
        log = open("../../output/logs/{}_logs".format(smell), "w")
        for elem in log_object[smell]:
            log.write('filename: {}, smelly_lines: {}, metric: {}\n'.format(elem['filename'], str(elem['lineno']), str(elem['metric'])))

我的函数尝试将一些登录信息写入目录output/logs/ 我正在调用此函数的目录是C:\Users\user\Desktop\proj\src\Detector。由于我希望在output(这是我的项目根目录)中生成/proj目录,因此我想这样做../../可以,但是它给了我

log = open("../../output/logs/{}_logs".format(smell), "w") FileNotFoundError: [Errno 2] No such file or directory: '../../output/logs/long_method_logs'

有什么我可以解决的吗?

1 个答案:

答案 0 :(得分:2)

您应该将os模块及其子模块os.path

使用

要加入路径,您应该os.path.join(path1, path2)

在您的情况下,您应该执行以下操作:

log = open(os.path.join(os.pardir, os.pardir, "output", "logs", "{}_logs").format(smell), "w")

另外,您还应该在退出前通过close通过log.close() {{1}}这个文件

为此,有一个logging模块