Skip to main content
 首页 » 编程设计

python之.split (",") 分隔字符串的每个字符

2025年05月04日19lonelyxmas

在程序的某个时刻,我要求它接受用户的文本输入并根据它的逗号分隔文本,然后我再次",".join 它到一个 txt 文件中。这个想法是有一个包含所有逗号分隔信息的列表。

问题是,显然,当我 ",".join 它时,它用逗号分隔每个字符,所以如果我有字符串 info1,info2 它分开,得到 info1 | info2,但是,当再次加入它时,它以 i,n,f,o,1,,,i,n,f,o,2, 结尾,这是非常不舒服的,因为它从 txt 文件中获取文本,以便稍后在程序中将其显示给用户。谁能帮我解决这个问题?

        categories = open('c:/digitalLibrary/' + connectedUser + '/category.txt', 'a') 
        categories.write(BookCategory + '\n') 
        categories.close() 
        categories = open('c:/digitalLibrary/' + connectedUser + '/category.txt', 'r') 
        categoryList = categories.readlines() 
        categories.close() 
 
            for category in BookCategory.split(','): 
                for readCategory in lastReadCategoriesList: 
                    if readCategory.split(',')[0] == category.strip(): 
                        count = int(readCategory.split(',')[1]) 
                        count += 1 
                        i = lastReadCategoriesList.index(readCategory) 
                        lastReadCategoriesList[i] = category.strip() + "," + str(count).strip() 
                        isThere = True 
                if not isThere: 
                    lastReadCategoriesList.append(category.strip() + ",1") 
                isThere = False 
 
            lastReadCategories = open('c:/digitalLibrary/' + connectedUser + '/lastReadCategories.txt', 'w') 
            for category in lastReadCategoriesList: 
                if category.split(',')[0] != "" and category != "": 
                    lastReadCategories.write(category + '\n') 
            lastReadCategories.close() 
 
        global finalList 
 
        finalList.append({"Title":BookTitle + '\n', "Author":AuthorName + '\n', "Borrowed":IsBorrowed + '\n', "Read":readList[len(readList)-1], "BeingRead":readingList[len(readingList)-1], "Category":BookCategory + '\n', "Collection":BookCollection + '\n', "Comments":BookComments + '\n'}) 
 
        finalList = sorted(finalList, key=itemgetter('Title')) 
 
        for i in range(len(finalList)): 
            categoryList[i] = finalList[i]["Category"] 
            toAppend = (str(i + 1) + ".").ljust(7) + finalList[i]['Title'].strip() 
            s.append(toAppend) 
 
        categories = open('c:/digitalLibrary/' + connectedUser + '/category.txt', 'w') 
        for i in range(len(categoryList)): 
            categories.write(",".join(categoryList[i])) 
        categories.close() 

请您参考如下方法:

您应该传递 ''.join() 一个列表,而不是传递一个字符串。

字符串也是序列,因此 ''.join() 将每个字符视为一个单独的元素:

>>> ','.join('Hello world') 
'H,e,l,l,o, ,w,o,r,l,d' 
>>> ','.join(['Hello', 'world']) 
'Hello,world'