[英]What does split('\000') do in this python code?
drives = win32api.GetLogicalDriveStrings()
drives = drives.split('\000')[:-1]
以上是我被分配到的项目中的一段代码。 第一行执行后,drives 变量如下:
C:\D:\
第二行执行后变成这样:
['C:\\', 'D:\\']
但是 '\000' 到底是什么意思呢? 我以前从未见过。
'\000' 是一个八进制序列。 代码的意图显然是在 NULL 上进行拆分。
如果代码如问题中所述工作,则GetLogicalDriveStrings()返回的实际值为:
"C:\\\000D:\\\000"
当然,如果你print()那个,你会看到:
C:\D:\
win32api.GetLogicalDriveStrings
返回由 Null 字符分隔的驱动器字符串,代码点 0。它可以用\x00
(十六进制)或\000
(八进制)在字符串文字中表示。 将其打印到控制台时没有字符/字形。
此外,不要与数字0
的字符混淆,即代码点 48(基数 10)或 0x30(十六进制)。
repr
返回字符串的表示形式。
ord
返回字符的 Unicode 代码点。
import win32api
drives = win32api.GetLogicalDriveStrings()
print(repr(drives))
for char in drives:
print(ord(char), char)
Output:
'C:\\\x00D:\\\x00'
67 C
58 :
92 \
0
68 D
58 :
92 \
0
看:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.