为什么要使用rstrip()获得这些结果?

2024-05-14 18:16:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把文件名保留下来文件.csv扩展名,但使用rstrip('.csv')删除以s结尾的字符串中的最后一个字母:

data_files = [
    "ap_2010.csv",
    "class_size.csv",
    "demographics.csv",
    "graduation.csv",
    "hs_directory.csv",
    "sat_results.csv"
]

data_names = [name.rstrip('.csv') for name in data_files]

我得到这样的结果:

["ap_2010", "class_size", "demographic","graduation","hs_directory", "sat_result"]

字符串结尾的人口统计和sat\U结果已经删除,为什么会发生这种情况??你知道吗


Tags: csv字符串namedatasize文件名结尾files
2条回答

这是因为rstrip()会将所有字符从字符串末尾分开。你知道吗

>>> 'abcdxyx'.rstrip('yx')
'abcd'

这将从字符串的右侧搜索yx。如果要删除.csv,可以使用split。你知道吗

>>> "ap_2010.csv".split('.')[0]
"ap_2010"

对于文件名,最好使用函数os.path.splitext

>>> import os
>>> os.path.splitext('ap_2010.csv')[0]
"ap_2010"

您可以通过以下方式获得预期的输出:

data_files = [
    "ap_2010.csv",
    "class_size.csv",
    "demographics.csv",
    "graduation.csv",
    "hs_directory.csv",
    "sat_results.csv"
]

data_names = [name.replace('.csv','') for name in data_files]

相关问题 更多 >

    热门问题