嗨,我正在制作一个python脚本,可读取信用卡中的磁条,我需要一些东西让我从B切成^,所以我尝试了分割,但它给了我一个错误。
卡输出是伪造的,仅用于测试。
确实需要有关python中拆分内容的帮助,真的希望它能正常工作!

信用卡输出:

%B4146452892178642^SMITH/JOHN ^1505101100001100000000387000000?;E?


错误:

Credit card detected
Traceback (most recent call last):
  File "Cloner.py", line 102, in <module>
    main()
  File "Cloner.py", line 46, in main
    clone_startUP()
  File "Cloner.py", line 60, in clone_startUP
    clone_type()
  File "Cloner.py", line 67, in clone_type
    CreditCard()
  File "Cloner.py", line 80, in CreditCard
    number = data.split("B", "^")
TypeError: 'str' object cannot be interpreted as an integer


码:

import pickle
import os
import sys
import time


def main():



os.system('cls' if os.name == 'nt' else 'clear')

if not os.path.exists("Credit Cards") and not os.path.exists("Other Cards"):

    os.makedirs("Credit Cards")
    os.makedirs("Other Cards")

    print("Creating needed files")
    print("Please Whait")
    print("-----5-----")
    time.sleep(1)
    print("-----4-----")
    time.sleep(1)
    print("-----3-----")
    time.sleep(1)
    print("-----2-----")
    time.sleep(1)
    print("-----1-----")
    time.sleep(1)

    if os.path.exists("Credit Cards") and os.path.exists("Other Cards"):
        os.system('cls' if os.name == 'nt' else 'clear')

        print("Files created")

        clone_startUP()
    else:
        os.system('cls' if os.name == 'nt' else 'clear')

        print("If this erro continues plz create files manually")
        print("------------------------------------------------")
        print("Foulder Names:")
        print("1 - Creadit Cards")
        print("2 - Other Cards")

        sys.exit()
else:
    clone_startUP()

def clone_startUP():

global data

os.system('cls' if os.name == 'nt' else 'clear')

print("Please insert a card:")
data = input()

if data == "":
    clone_startUP()
else:
    clone_type()

def clone_type():

if data[1:2] == "B":
    os.system('cls' if os.name == 'nt' else 'clear')
    print("Credit card detected")
    CreditCard()
else:
    OtherCard()

def CreditCard():

global number
global first_date
global second_date
global first_name
global last_name
global cvv

number = data.split("B", "^")
first_date = data.split("^",2)
second_date = data.split("^",2,5)
first_name = data.split("^","/")
last_name = data.split("/","^")
cvv = data[-14:-10]
credit_info()

def credit_info():

os.system('cls' if os.name == 'nt' else 'clear')

print(first_name)
print(last_name)
print(number)
print(first_date + "/" + second_date)
print(cvv)





main()

最佳答案

该错误是由split 的第二个参数maxsplit引起的

从文档:


  如果指定了maxsplit,则最多完成maxsplit分割(因此,列表
  最多具有maxsplit + 1个元素)


但是您在例如^中指定了number = data.split("B", "^")

09-11 17:21