在Python 3输入函数中处理转义字符?

j5fpnvbx  于 2023-05-02  发布在  Python
关注(0)|答案(1)|浏览(125)

我试图运行一个程序,将采取输入的纸牌游戏卡,附加到一个列表,然后导出文件作为两个。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。
有什么建议可以解决这个问题,允许用户输入包含逗号的卡片名称吗?先谢谢你了!

xjreopfe

xjreopfe1#

以前发布的解决方案实际上是错误的,但是我发现问题是在www.example中默认使用逗号作为分隔符 www.example.com _csv和read_file。到_csv行。我把分隔符改成了“|”,它从不出现在这些卡片名称中,而且程序现在接受包含逗号的用户输入没有问题。

相关问题