我正在尝试运行一个程序,该程序将输入纸牌游戏卡,将它们附加到列表中,然后将文件导出为 .txt 文件和 .csv 文件。该程序可以运行,但是无法处理名称中带有逗号的卡片。
例如这个函数:
def card_adder(list):
next_one = str(input("ADD: "))
copies = input("How many? ")
for i in range(int(copies)):
list.append(next_one)
看起来像:
ADD:树栖食草动物
多少? 4
牌组中目前有 4 张牌。
添加:Azusa,迷失但寻求
多少? 1
牌组中目前有 5 张牌。
当程序到达指定数量的主牌和备牌(共75张)时,它将运行导出器功能:
def exporter():
...
deckname = input("Deck name: ")
deck = open(f"{deckname}.txt, "w")
for card in seventyfive:
deck.write(card+"\n")
deck.close()
read_file = pd.read_csv (fr'C:\\Users\\[User]\\{deckname}.txt' error_bad_lines=False
read_file.to_csv (fr'C:\\Users\\[User]\\{deckname}.csv', index=None)
但是,这会在终端中产生以下错误:
b'跳过第 5 行:预期 1 个字段,看到 2 个 跳过第 29 行:预期 1 个字段,看到 2 个 跳过第 30 行:预期 1 个字段,看到 2 个 跳过第 48 行:预期 1 个字段,看到 2 个 跳过第 58 行:预期 1 个字段,看到 2 个 跳过第 59 行:预期 1 个字段,看到 2 个 '
上面跳过的每一行都是输入的卡片名称,名称中包含一个逗号。它将成功导出文件,但会跳过名称中带有逗号的每张卡片并保存不完整的牌组列表。
关于如何解决此问题以允许用户输入包含逗号的卡名称的任何建议?提前致谢!
之前发布的解决方案实际上是错误的,但是我发现问题是在 pd.read_csv 和 read_file.to_csv 行中默认使用逗号作为分隔符。我将分隔符更改为“|”,它从未出现在这些卡片名称中,程序现在可以毫无问题地接受包含逗号的用户输入。