一般出现这个错误是因为在路径中出现了这个Unicode 202a字符,这个字符的含义是left to right,也就是从左到右的阅读顺序,在写代码的时候显示不出来,但是在命令行中可以显示出来:。
那么它是哪里来的?我这里是复制windows文件属性的时候复制下图中的路径而来的。
比如你复制下面的这一句话,然后运行试试(前提是import os了)
file=os.listdir("E:\DataSets\faces")
解决方法就是把鼠标放到e前面,然后backspace向左删除一个字符,会发现显示上没有发生变化,但是控制字符已经被删除了。
详情参考
Unicode Utilities: Character Properties
一般出现这个错误是因为在路径中出现了这个Unicode 202a字符,这个字符的含义是left to right,也就是从左到右的阅读顺序,在写代码的时候显示不出来,但是在命令行中可以显示出来:。那么它是哪里来的?我这里是复制windows文件属性的时候复制下图中的路径而来的。比如你复制下面的这一句话,然后运行试试(前提是import os了)file=os.listdir("...
OSError: [WinError 123]
文件名
、
目录名
或卷
标语
法
不
正确
OSError: [WinError 123]
文件名
、
目录名
或卷
标语
法
不
正确
。
Traceback (most recent call last):
File "C:/Users/DELL/Desktop/lagou_knowledge_payment/lagou_pyplot.py", line 7, in &...
然后运行过程
中
,一直引发异常,非
法
的URL字符串。
当时同学就纳闷了,手敲的可以,复制的不行,看着一模一样的字符串,有什么区别呢?
而且更神奇的是,这个对象名称从左往右选
中
复制,和从右往左选
中
复制,是不一样的。
我们把两次选
中
的放入word,运用神奇的ALT+X查看Unicode字符编码:...
import xlwings as xw
wb = xw.Book(r
'
c:\\Users\\Desktop\\1.xlsx
'
)
sht = wb.sheets[
'
Sheet1
'
]
sht.range(
'
A1
'
).value =
'
yunhu
'
FileNotFound...
python
3读取windows路径多出来个’\u202a’
最近一直在做一个
python
3+tkinter的GUI项目,有一个功能需求是通过获取用户粘贴板上的文件路径然后读取相关文件内容,在
中
间调试的过程
中
发现每次拿到的路径前面都有一个\u202a,在这里做个记录。
一、什么是‘\u202a’
\u202a是一个非常神奇的字符,只会出现在windows操作系统
中
。而且在我们常规的查询
中
是无
法
发现,如果使用手敲将其完整复现出来的话就会发现并不会出现这种情况。
那么\u202a是什么呢
他是一个UNIC
Unicode Bidirectional Algorithm
Unicode标准规定内存表示顺序称为逻辑顺序。当文本排布在水平行线上时,大多数脚本从左往右显示字符。然而,也有一些脚本(如阿拉伯语或希伯来语)水平显示文本的自然顺序是从右往左。如果所有文本具有单纯一致的水平方向,那么显示文本的顺序就不会不清楚了。
但是,由于这
在开发
中
,偶尔会遇到一些奇怪的现象,比如明明看起来一模一样的字符串,使用equals比较,却返回不false。仔仔细细,一个一个字符的比较核对,却找不出异常。实在是非常恼人,今天我来谈下自己遇零宽空白问题,和自己的解决方
法
,以供大家参考。
通过这篇博客,你可以了解到以下知识点:
1.什么是零宽空白
2.怎么使零宽空白现身
3.怎么写出零宽空白
下面的代码,请直接复制!!!
照着敲...
import os
old = r
'
D:\afk-25(矹呐咔叽哈)\1fbf09aaa6.jpg
'
new = r
'
D:\afk-25(矹呐咔叽哈)\1fbf09aaa7.jpg
'
os.rename(old,new)
#结果报错了
在路径里多了一个\u202a
真的让人崩溃!
后来从文件夹
中
复制的路径才能用!
import pandas as pd
io = r
'
E:\Desktop\jupyter_data\test.xlsx
'
data = pd.read_excel(io,sheet_name =
'
sheet1
'
)
报错1:OSError: [Errno 22] Invalid argument:
'
\u202
aE
原因
:通过test文件右键属性,复制的文件全路径,如下:
复制的内容:
E:\Desktop\j
这个
错误
提示是由于文件路径
中
的转义字符`\没有
正确
转义导致。在字符串
中
,`\`被用作转字符,例如`\n`表示换符,`\t`表示制表符等。当出现类似`\D`、`\D:Download`这样的字符串时,
Python
会认为`\D`是一个特殊的转义字符,而不是普通的字符。
为了解决这个问题,有两种方
法
:
1. 将路径字符串前面加上`r`,表示原始字符串。例如:`folder_path = r'D:\Download\inggong'`。这样
Python
就会将字符串
中
的`\`视为普通字符,而不进行转义。
2. 将路径字符串
中
的`\`替换为`/`。例如:`folder_path = 'D:/Download/inggong'`。在Windows系统
中
,使用斜杠`/`作为路径分隔符也是可以的。
请根据你的实际情况选择其
中
一种方
法
进行修正。同时,确保文件路径的
正确
性,避免出现
目录名
或
文件名
不
正确
的情况。