【问题标题】:OS Error While Converting String To Raw String And Creating File将字符串转换为原始字符串并创建文件时出现操作系统错误
【发布时间】:2021-05-17 18:49:50
【问题描述】:

我是 Python 初学者。我想为程序每次使用的时候做一个日志文件,代码如下;

import time

date1 = time.strftime('%d-%m-%Y %H:%M:%S')
path = "C:\\Users\\Devisha\\Documents\\Coding\\Python\\DeviOS\\Log"
name1 = '\\Log-'
date = date1
last = '.txt'
filelog = path + name1 + date + last
b = r"{}".format(filelog)
a = open(b, 'x')

当我运行它时,它会返回此错误

Traceback(最近一次调用最后一次): 文件“c:\Users\Devisha\Documents\Coding\Python\test.py”,第 10 行,在 a = 打开(b,'x') OSError:[Errno 22] 无效参数:'C:\Users\Devisha\Documents\Coding\Python\DeviOS\Log\Log-14-02-2021 23:42:33.txt'

所以我想要它做的是,获取日期,将它与开始路径 (path)、文件名 start (name1) 和文件类型 (last) 融合,并将其转换为字符串,然后制作一个文件。

我正在使用 VS Code 和 Python 3.9.1 64 位

【问题讨论】:

  • 不需要formatfilelog 已经是一个字符串了。
  • “转换为原始字符串”是什么意思? Raw 仅适用于字符串文字,而不适用于字符串的内容。
  • x 模式应该是什么?
  • 你有没有尝试过逃离这里的空格“Log-14-02-2021 23:42:33.txt”?
  • @Barmar 我尝试直接将其添加为路径而不使用format,它返回了这个。文件“c:\Users\Devisha\Documents\Coding\Python\test.py”,第 10 行,在 a = open(filelog, 'x') OSError: [Errno 22] Invalid argument: 'C:\ \Users\\Devisha\\Documents\\Coding\\Python\\DeviOS\\Log\\Log-15-02-2021 08:22:11.txt'

标签: python python-3.x string file python-3.9


【解决方案1】:

我会推荐 python logging 库 如果你想记录代码,你可以使用。

【讨论】:

  • 感谢您的建议,它是一个很酷的库,易于使用和简单但它仍然不能解决文件名作为字符串的问题--------> [OSError :[Errno 22] 无效参数:'C:\\Users\\Devisha\\Documents\\Coding\\Python\\DeviOS\\Log\\Log-15-02-2021_09:26:54.txt']
  • 可能是字符串格式,我真的建议使用os.path 创建文件路径。一个可能的问题可能是您定义 Windows 路径的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
  • 2018-04-26
相关资源
最近更新 更多