List 如何从每个列表项中删除特定字符串
我在List 如何从每个列表项中删除特定字符串,list,python-3.x,loops,strip,List,Python 3.x,Loops,Strip,我在C:\中有list文件路径,存储在名为filepath的列表中,现在我必须在执行for循环时从所有filepath中剥离C:\ 循环时我找不到strip方法,因为每个元素都是Typelist。请在下面找到我的代码 filepaths = ['C:\folder\file1.jpg','C:\file2.png','C:\file3.xls'] tobestriped = 'C:\' for filepath in filepaths: newfilepath = filepath.s
C:\
中有list
文件路径,存储在名为filepath
的列表中,现在我必须在执行for循环时从所有filepath
中剥离C:\
循环时我找不到strip方法,因为每个元素都是Typelist
。请在下面找到我的代码
filepaths = ['C:\folder\file1.jpg','C:\file2.png','C:\file3.xls']
tobestriped = 'C:\'
for filepath in filepaths:
newfilepath = filepath.strip(tobestriped)
print(newfilepath)
首先,在
tobestried
中,您将得到一个错误,因为\'
将被转义。您可以使用tobestriped='C:\\'
答复如下:
“原始字符串文字”是与字符串稍有不同的语法
字面意思,其中反斜杠\表示“只是一个字母”
反斜杠“(除非它正好在引用之前
否则,终止文本)--没有要表示的“转义序列”
换行符、制表符、退格、表单提要等。正常字符串
文字,每个反斜杠必须加倍,以避免被视为
转义序列的开始
接下来,路径列表中的\f
也将被转义。要解决此问题,请将这些字符串设置为原始字符串:
filepaths = [r'C:\folder\file1.jpg', r'C:\file2.png', r'C:\file3.xls']
a您将获得所需的结果:
filepaths = [r'C:\folder\file1.jpg', r'C:\file2.png', r'C:\file3.xls']
tobestriped = 'C:\\'
for filepath in filepaths:
newfilepath = filepath.strip(tobestriped)
print(newfilepath)
输出:
folder\file1.jpg
file2.png
file3.xls
解决方案的另一种选择是利用以下事实:所有字符串都以C:\
开头,因此可以执行以下操作:
print([x[3:] for x in filepaths])
我不能像你在回答中提到的那样做
newfilepath=filepath.strip(tobestriped)
。我得到了这个错误,AttributeError:“list”对象没有属性“strip”
根据您提供的数据,我的每个解决方案都有效。如果您的路径以列表的形式出现,那么就在for循环之前:flat\u list=[item for sublist in l for item in sublist]
如果我正在读取一个csv文件并制作filepath
列表,那么在方法上会有什么不同吗?我们不要让这成为一个永无止境的故事。发布所有相关代码以及数据的实际外观