2024-09-25 14:17:00 发布
网友
如果我有一个xyc.csv顺序的字符串(文件名),并且这个名称存储为stringA,我发现:
xyc.csv
stringA
stringB = stringA.rstrip('.csv')
最终导致stringB的值为xy,而该值应为xyc。或者至少我觉得应该。你知道吗
stringB
xy
xyc
其他人注意到了吗?我怎么才能停下来?你知道吗
rstrip删除传递字符串中存在的所有字符,直到它碰到传递字符串中不存在的字符为止。你知道吗
rstrip
>>> 'abcxyzxyz'.rstrip('xyz') 'abc'
如果要删除文件扩展名,我建议os.path.splitext():
os.path.splitext()
>>> import os >>> os.path.splitext(r'C:\Users\John Doe\file.txt') ('C:\\Users\\John Doe\\file', '.txt') >>> os.path.splitext(r'C:\Users\John Doe\file.txt')[0] 'C:\\Users\\John Doe\\file'
使用正则表达式。你知道吗
>>> import re >>> re.sub('\\.csv$', '', 'XYZ.csv') 'XYZ'
rstrip不适合此任务,因为它将字符串视为单个字符的数组,并以任何顺序删除尽可能多的字符。你知道吗
特别是对于文件名,有另一种解决方案:os.path模块处理文件名,并且可以轻松地删除扩展名,不管它是什么。你知道吗
os.path
>>> import os >>> os.path.splitext('XYZ.csv')[0] 'XYZ'
rstrip的意思是“从末尾删除与此字符串中的任何字符匹配的所有字符”,而不是像您假设的那样“从末尾删除此字符串”。你知道吗
您必须检查字符串是否以.csv结尾,如果以.csv结尾,则删除4个字符。你知道吗
rstrip
删除传递字符串中存在的所有字符,直到它碰到传递字符串中不存在的字符为止。你知道吗如果要删除文件扩展名,我建议
os.path.splitext()
:使用正则表达式。你知道吗
rstrip
不适合此任务,因为它将字符串视为单个字符的数组,并以任何顺序删除尽可能多的字符。你知道吗特别是对于文件名,有另一种解决方案:
os.path
模块处理文件名,并且可以轻松地删除扩展名,不管它是什么。你知道吗rstrip
的意思是“从末尾删除与此字符串中的任何字符匹配的所有字符”,而不是像您假设的那样“从末尾删除此字符串”。你知道吗您必须检查字符串是否以.csv结尾,如果以.csv结尾,则删除4个字符。你知道吗
相关问题 更多 >
编程相关推荐