吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 571|回复: 10
收起左侧

[已解决] python里如何实现按照txt文本逐行顺序实现截屏点击

[复制链接]
xuming98 发表于 2024-8-7 15:23
本帖最后由 xuming98 于 2024-8-11 07:10 编辑

目前有4个py文件分别是ABCD.py,用如下vbs实现目的,可以按顺序调出ABCD.py,但不执行py程序,只是窗口一闪而过,ABCD.py单独双击和右键打开测试均没有问题。怀疑vbs调用py文件有bug,
特向各位大师请教如何实现python程序按照1.txt文本顺序(逐行)每行一个字母A或B或C或D,分别调取同名.py?

vbs代码如下:' 创建一个FileSystemObject对象
Set fso = CreateObject("Scripting.FileSystemObject")

' 指定包含文件名列表的文本文件路径
textFilePath = "C:\Users\xm\Desktop\1.txt"

' 读取文件列表
Set textFile = fso.OpenTextFile(textFilePath, 1)

' 逐行处理
Do Until textFile.AtEndOfStream
    line = textFile.ReadLine
   
    ' 构建.py文件的路径
    pyFilePath = "C:\Users\xm\PycharmProjects\111\" & line & ".py"
   
    ' 检查文件是否存在
    If fso.FileExists(pyFilePath) Then
        ' 使用默认程序打开.py文件
        Set wshell = CreateObject("WScript.Shell")
        command = "python.exe " & pyFilePath
        wshell.Run command
    Else
        WScript.Echo "文件不存在: " & pyFilePath
    End If
Loop

' 关闭文件
textFile.Close

' 清理对象
Set fso = Nothing
Set textFile = Nothing
Set wshell = Nothing

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wkdxz 发表于 2024-8-7 15:37
可以做几个测试文件,看看是否能调用成功。
如果成功,则VBS没问题,python有问题。
不成功,再逐步调试VBS


假设为ABCD四个文件,文件内容
[Asm] 纯文本查看 复制代码
import os
import time

script_name = os.path.basename(__file__)
print(f"当前脚本文件名:{script_name}")
print("程序将在5秒后退出...")

time.sleep(5)
 楼主| xuming98 发表于 2024-8-7 15:55
wkdxz 发表于 2024-8-7 15:37
可以做几个测试文件,看看是否能调用成功。
如果成功,则VBS没问题,python有问题。
不成功,再逐步调试V ...

把这个代码做成py文件,改名为a.py,  vbs调用还是一闪而过
qzwsa 发表于 2024-8-7 15:59
[Asm] 纯文本查看 复制代码
' 创建一个FileSystemObject对象
Set fso = CreateObject("Scripting.FileSystemObject")

' 指定包含文件名列表的文本文件路径
textFilePath = "C:\Users\xm\Desktop\1.txt"

' 读取文件列表
Set textFile = fso.OpenTextFile(textFilePath, 1)

' 逐行处理
Do Until textFile.AtEndOfStream
    line = textFile.ReadLine
    
    ' 构建.py文件的路径
    pyFilePath = "C:\Users\xm\PycharmProjects\111\" & line & ".py"
    
    ' 检查文件是否存在
    If fso.FileExists(pyFilePath) Then
        ' 使用WScript.Shell对象执行Python脚本并等待其完成
        Set pythonProcess = CreateObject("WScript.Shell").Exec("python.exe " & pyFilePath)
        
        ' 等待Python脚本执行完毕
        pythonProcess.WaitFor
        
        ' 如果需要,可以在这里处理Python脚本的输出
        ' pythonOutput = pythonProcess.StdOut.ReadAll()
        ' WScript.Echo "Python output: " & pythonOutput
    Else
        WScript.Echo "文件不存在: " & pyFilePath
    End If
Loop

' 关闭文件
textFile.Close

' 清理对象
Set fso = Nothing
Set textFile = Nothing
Set pythonProcess = Nothing
talentscj 发表于 2024-8-7 17:57
大佬66666
 楼主| xuming98 发表于 2024-8-7 19:46
qzwsa 发表于 2024-8-7 15:59
[mw_shl_code=asm,true]' 创建一个FileSystemObject对象
Set fso = CreateObject("Scripting.FileSystemOb ...

谢谢回复,报错
行23 字符9
对象不支持此属性或方法
800A01B6
lechao 发表于 2024-8-7 20:04
[Asm] 纯文本查看 复制代码
' 创建一个FileSystemObject对象
Set fso = CreateObject("Scripting.FileSystemObject")

' 指定包含文件名列表的文本文件路径
textFilePath = "C:\Users\xm\Desktop\1.txt"

' 读取文件列表
Set textFile = fso.OpenTextFile(textFilePath, 1)

' 逐行处理
Do Until textFile.AtEndOfStream
    line = textFile.ReadLine
    
    ' 构建.py文件的路径
    pyFilePath = "C:\Users\xm\PycharmProjects\111\" & line & ".py"
    
    ' 检查文件是否存在
    If fso.FileExists(pyFilePath) Then
        ' 使用默认程序打开.py文件,并等待其完成
        Set wshell = CreateObject("WScript.Shell")
        command = "python.exe " & pyFilePath
        ' 使用Wait参数让脚本等待命令执行完成
        wshell.Run command, 0, True
    Else
        WScript.Echo "文件不存在: " & pyFilePath
    End If
Loop

' 关闭文件
textFile.Close

' 清理对象
Set fso = Nothing
Set textFile = Nothing
Set wshell = Nothing
 楼主| xuming98 发表于 2024-8-7 20:13
lechao 发表于 2024-8-7 20:04
[mw_shl_code=asm,true]' 创建一个FileSystemObject对象
Set fso = CreateObject("Scripting.FileSystemOb ...

谢谢回复,双击没任何反应
 楼主| xuming98 发表于 2024-8-7 20:28
qzwsa 发表于 2024-8-7 15:59
[mw_shl_code=asm,true]' 创建一个FileSystemObject对象
Set fso = CreateObject("Scripting.FileSystemOb ...

删除: ' 等待Python脚本执行完毕
        pythonProcess.WaitFor
         
        ' 如果需要,可以在这里处理Python脚本的输出
        ' pythonOutput = pythonProcess.StdOut.ReadAll()
        ' WScript.Echo "Python output: " & pythonOutput

还是一闪而过,没有运行py
 楼主| xuming98 发表于 2024-8-7 20:53
这个也是一闪而过
[Visual Basic] 纯文本查看 复制代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("1.txt", 1) ' Open the file for reading
 
Do Until objTextFile.AtEndOfStream  ' Loop until the end of the file
    strLine = objTextFile.ReadLine  ' Read a line from the file
    If strLine <> "" Then  ' Check if the line is not empty
        ' Assuming the .py files are in the same directory as the .vbs script
        CreateObject("WScript.Shell").Run "python " & strLine & ".py", 1, True
    End If
Loop
 
objTextFile.Close  ' Close the file
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表