我正在尝试以特定方式对文件和目录进行排序(对我来说这是通常的方式,但还可以)。所以我有 JPG 文件,然后是一些 txt 文件或 wav,我有一些目录,我希望它像首先按名称排序所有文件,然后对目录排序,但是当我尝试执行以下操作时:
path = "/my_path"
arr = os.listdir(path)
arr.sort(key=lambda x: (os.path.isdir(x), x))
print(arr)
Run Code Online (Sandbox Code Playgroud)
代码给了我输出:
['10000100.JPG', '10000101.JPG', '10000102.JPG', '10000103.JPG', '10000104.BMP', 'BACKUP.BIN', 'DEPOSIT.BIN', 'HRYS', 'WAVS', 'k.txt', 's.wav']
Run Code Online (Sandbox Code Playgroud)
但应该是:
['10000100.JPG', '10000101.JPG', '10000102.JPG', '10000103.JPG', '10000104.BMP', 'BACKUP.BIN', 'DEPOSIT.BIN', 'k.txt', 's.wav', 'HRYS', 'WAVS']
Run Code Online (Sandbox Code Playgroud)
如何以正确的方式去做?
我有一个简单的函数来从串行端口读取字节。
简单的代码看起来像
read_bytes = serial.read(5)
之后我打印结果,例如我有
b'\x01\x02\x03\x04\x05'
有一个选项可以捕获特定位置的字节吗?例如,如果我想在第二个位置打印字节,它应该为我打印b'\x02'。我阅读文档,但功能find并index做不同的事情。
python ×2
alphabetical ×1
byte ×1
directory ×1
indexing ×1
listdir ×1
position ×1
serial-port ×1
sorting ×1