3

いくつかの文字列をテキスト ファイルに出力するためのこのコードがありますが、すべての空の項目を無視するには python が必要なので、空の行は出力されません。
私はこのコードを書きました。これは単純ですが、トリックを実行する必要があります。

lastReadCategories = open('c:/digitalLibrary/' + connectedUser + '/lastReadCategories.txt', 'w')
for category in lastReadCategoriesList:
    if category.split(",")[0] is not "" and category is not None:
        lastReadCategories.write(category + '\n')
        print(category)
    else: print("/" + category + "/")
lastReadCategories.close()

問題はありませんが、python は空のアイテムをファイルに出力し続けます。すべてのカテゴリは、「category,timesRead」という表記で書かれています。そのため、コンマの前の最初の文字列が空でないかどうかを Python に確認します。次に、アイテム全体が空でないかどうかを確認します (None ではありません)。理論的には、うまくいくはずですよね?
PS: 'category' が "" ではなく " " ではないかどうかを確認するかどうかを既に尋ねてみましたが、それでも同じ結果です。

4

3 に答える 3

1

rstrip() カテゴリをファイルに書き戻す前に

lastReadCategories = open('c:/digitalLibrary/' + connectedUser +'/lastReadCategories.txt', 'w')
for category in lastReadCategoriesList:
if category.split(",")[0] is not "" and category is not None:
    lastReadCategories.write(category.rstrip() + '\n')
    print(category.rstrip())
else: print("/" + category + "/")
lastReadCategories.close()

提供されたサンプルリストを使用してテストできました(ファイルに書き込まずに):

lastReadCategoriesList =  ['A,52', 'B,1\n', 'C,50', ',3']
for category in lastReadCategoriesList:
if category.split(",")[0] is not "" and category is not None:
    print(category.rstrip())
else: print("/" + category + "/")

>>> ================================ RESTART ================================
>>> 
A,52
B,1
C,50
/,3/
>>> 
于 2013-05-21T21:51:41.740 に答える