打开相对路径并写作

问题描述 投票:0回答:1
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'

有什么办法可以解决这个问题吗?

python filepath
1个回答
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()这个文件

为此目的,有一个logging模块

© www.soinside.com 2019 - 2024. All rights reserved.