2013-05-27 35 views
0

在程序的某个位置,我要求它取用户的文本输入并根据它的逗号分隔文本,然后我再次将它写入一个txt文件。这个想法是有一个包含所有逗号分隔信息的列表。.split(“,”)分隔字符串的每个字符

的问题是,很显然,当我",".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() 
+0

分享你的代码,所以我们可以把您有 – Duniyadnd

+0

肯定错误,对不起,忘了这样做 – AugustoQ

+0

OK ,有代码的重要部分,如果你需要任何其他的东西只是让我知道。 – AugustoQ

回答

8

你应该通过''.join()列表,你传递一个字符串代替。

字符串是序列太多,所以''.join()对待每一个字符作为一个单独的元素,而不是:

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