You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python脚本调用write()函数传参报错,求解决方案

问题根源

你遇到的错误是因为命名冲突:同时导入了keyboard和pyautogui两个库,它们都包含write函数,当前代码实际调用的是keyboard.write而非你需要的pyautogui.write。

  • keyboard.write不支持delay关键字参数,只能用位置参数传递延迟值,这是第一个错误的直接原因;
  • 即便去掉关键字参数,keyboard.write的行为逻辑和pyautogui.write完全不同,因此会触发第二个错误。
解决方案

1. 避免通配符导入(推荐)

通配符from ... import *极易引发命名冲突,改用明确的模块导入是最稳妥的方案:

import random
import keyboard
import pyautogui as pg  # 给pyautogui起别名,明确区分函数归属
import time
import os

cardnum = input('Введите номер карты \n>>>')
date = input('Введите дату карты \n>>>')
cvv = input('Введите CVV карты\n>>>')  # 修正原输入提示的错误
name = input('Введите имя владельца карты \n>>>')

address = ['Kurtuluş Mh.','Kennedy Cd', 'Kocatepe Mh.','Cennet Mh.','Bostancı Mh.','Karakusunlar Mh 1545 Sk No 7 - Balgat','İnönü Cd Malatyapark Alışveriş Merkezi No:192','Bostancı Mh.',' Ortamahalle Mh.','  Siteler Mh.','Üsküdar Cd No:5 D:11','Beştepeler Mh. Yaşam Cd. No:5 Pk:06510 Yenimahalle/ankara','Fulya Mh.','Beştepeler Mh.','Arnavutköy Merkez Mh.','  Camikebir Mah.7 Eylül sok.No:09(Old town) 09400 Kuşadası',' Fikirtepe Mh.','Merkez Mh.','Ataköy 7-8-9-10 Mh.','Kapaklı Köyü Hoyran Mahallesi No:25','Tomtom Mh.','Emniyet Mh.','Çarşı Cd No:3','Akşemseddin Mh.','Kızlar Pınarı Mh.','Barbaros Blv','Büyük Dere Cd Yonca Apt. B Blok No:151 D:21', 'İstanbul İstiklal Caddesi Balo Sok.no 1/3']
cityes = ['Soma','Zeytinburnu','Bayrampaşa','Küçükçekmece','Kadıköy','Çankaya','Yeşilyurt','Fatih','Beyoğlu','Konak','Ümraniye','Aksu','Bayraklı','Çankaya','Muratpaşa','Fatih','Nilüfer','Kadıköy','Altındağ','Kartal','Kadıköy','Seyhan','Buca']
states = ['İstanbul','Antalya','Ankara','Malatya','Aydın',' Beşiktaş','Şişli','Beyoğlu','İzmir','Menderes','Bursa','Adana',]
postcode = ['45502','34025','34045','34290','34740','06530','44070','34098','34379','34435','35210','34775','07112','35495','35540','07160','34122','34720','01010','35380']

while True:
    ready = input(f'Как надо будет вывести нажмите Enter')
    time.sleep(3)
    pg.moveTo(800, 515)  # 移除多余逗号,修正语法错误
    pg.click()
    time.sleep(0.3)
    pg.write(cardnum, delay=0.1)  # 明确调用pyautogui的write,支持delay关键字参数
    time.sleep(0.3)  # 把逗号改为小数点,修正sleep参数错误
    pg.moveTo(741,626)
    pg.click()
    pg.write(date, delay=0.1)
    time.sleep(0.3)
    pg.moveTo(1020,605)
    pg.click()
    pg.write(cvv, delay=0.1)
    time.sleep(0.3)
    pg.moveTo(740,715)
    pg.click()
    pg.write(name, delay=0.1)
    pg.moveTo(1180,845)
    pg.click()
    time.sleep(5)

2. 调整导入顺序(不推荐)

如果坚持使用通配符导入,可将pyautogui的导入放在keyboard之后,让pyautogui.write覆盖keyboard.write:

from random import *
from time import *
from os import *
from keyboard import *
from pyautogui import *  # 放在最后,覆盖同名的write函数

但这种方式仍存在代码混淆风险,不建议长期使用。

额外修复的小问题

  • 原代码中moveTo,(800, 515)多了逗号,会触发语法错误,已修正为moveTo(800, 515);
  • sleep(0,3)中的逗号是错误的,已改为小数点sleep(0.3);
  • 重复导入了random库,已清理冗余导入;
  • CVV的输入提示写错为“Введите номер карты”,已修正为“Введите CVV карты”。

内容的提问来源于stack exchange,提问作者user21148656

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 03:31:37