我试图运行一个程序,将采取输入的纸牌游戏卡,附加到一个列表,然后导出文件作为两个。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)
将看起来像:
地址:Arboreal Grazer
多少?4
目前有4张牌在甲板上。
专辑名称:Azusa Lost But Seeking
多少?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个\n跳过第29行:预期为% 1个字段,看到% 2个\n跳过第30行:预期为% 1个字段,看到% 2个\n跳过第48行:预期为% 1个字段,看到% 2个\n跳过第58行:预期为% 1个字段,看到% 2个\n跳过第59行:应为% 1个字段,看到% 2\n'
上面跳过的每一行都是一个输入的卡片名称,名称中包含逗号。它将成功地导出文件,但跳过名称中带有逗号的每张卡片,并保存一个不完整的decklist。
有什么建议可以解决这个问题,允许用户输入包含逗号的卡片名称吗?先谢谢你了!
1条答案
按热度按时间xjreopfe1#
以前发布的解决方案实际上是错误的,但是我发现问题是在www.example中默认使用逗号作为分隔符 www.example.com _csv和read_file。到_csv行。我把分隔符改成了“|”,它从不出现在这些卡片名称中,而且程序现在接受包含逗号的用户输入没有问题。