Python open()传入路径参数用单斜杠分隔,运行报错:路径用双斜杠分隔无效

本文探讨了在Windows系统中使用Python open()函数打开文件时遇到的路径问题,特别是涉及到字符串变量b时斜杠变双斜杠的现象。通过检查字符串内容,发现字符串b中的空格是问题源头。通过将空格替换为下划线,解决了路径错误,确保了文件的正常保存。总结指出Windows文件名不能包含特殊字符,并提供了Linux文件名的注意事项。
摘要由CSDN通过智能技术生成

Windows系统中,Python环境open()函数打开文件,
地址参数传入路径单斜杆分隔,但运行时跳出告警无效参数,参数带双斜杠:

a = 'subaccount'
b = '2021-06-24 13:43:00'
g_json_dir = r'E:\TEMP'

json_path = g_json_dir + r'\%s_%s.json' % (a, b)

with open(json_path , "w", encoding='utf-8') as f:
    json.dump(111111, f, ensure_ascii=False)

在这里插入图片描述

感觉路径斜杠问题不定期会出现,但用单斜杠的写法大部分时候又可以,究竟问题在哪里。

# json_path = g_json_dir + r'\%s.json' % (a)  # 正常
# json_path = g_json_dir + r'\%s_%s.json' % (a, '1111111')    # 正常
# json_path = g_json_dir + r'\%s.json' % (str(b))    # 正常
# json_path = g_json_dir + r'\%s_%s.json' % ('1111111', '11111')     ## 正常
# json_path = g_json_dir + r'\%s_%s.json' % (a, '111111111')    # 正常
# json_path = g_json_dir + r'\%s_%s.json' % (a, a)  # 正常
# json_path = g_json_dir + r'\%s.json' % (a + a)    # 正常

# json_path = g_json_dir + r'\%s.json' % (a+ b)		# 斜杠\变双斜杠\\
json_path = g_json_dir + r'\%s_%s.json' % (a, b)	# 斜杠\变双斜杠\\
# json_path = g_json_dir + r'\%s_%s.json' % (b, '11111')	# 斜杠\变双斜杠\\
# json_path = g_json_dir + r'\%s_%s.json' % (str(b), '11111')     # 斜杠\变双斜杠\\
# json_path = g_json_dir + r'\%s_%s.json' % ('1111', str(b))  # 斜杠\变双斜杠\\
# 

尝试多种组合,发现只要路径中加入b,均出现路径斜杠变双斜杠
问题应该是在字符串b,是不是字符串b中的内容有问题?
先把空格改掉试试

run = str(b).replace(' ', '_')

# json_path = g_json_dir + r'\%s.json' % (sub_account + run_time)
json_path = g_json_dir + r'\%s_%s.json' % (sub_account, run_time)

仍然会把斜杠改成双斜杠:
在这里插入图片描述
把:改成_,试试

run = str(b).replace(':', '_')

# json_path = g_json_dir + r'\%s.json' % (sub_account + run_time)
json_path = g_json_dir + r'\%s_%s.json' % (sub_account, run_time)

总算保存成功了,路径参数正常
在这里插入图片描述
总结:
windows文件名称中不能包含 \ / : * ? " < > |

Linux文件名除了字符“/”之外,所有的字符都可以使用,但是要注意,在目录名或文件名中,使用某些特殊字符并不是明智之举。例如,在命名时应避免使用 <、>、?、* 和非打印字符等。如果一个文件名中包含了特殊字符,例如空格,那么在访问这个文件时就需要使用引号将文件名括起来。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

779醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值