w377179521 2023-07-05 11:51 采纳率: 50%
浏览 20
已结题

python传递字符串到另一个函数

这个代码是希望能使用Shuju实现监听剪贴板上复制的文件夹路径,然后用函数 show_files将文件夹下的所有文件路径保存到txt文件中
现在的问题是,怎么能把监听到的数据Shuju() 的字符串给到倒数第四行 path

img

import pyperclip
import time
import os


def show_files(all_files):
    """读取path对应文件夹下的所有文件路径"""
    file_list = os.listdir(all_files)  # 读取并建立文件名列表
    for fi in file_list:
        fi_d = os.path.join(all_files, fi)  # 合并文件名和路径
        if os.path.isdir(fi_d):  # 判断是否为文件目录
            show_files(fi_d)
        else:
            str = os.path.join(all_files, fi_d)[:-3] + '.ma' + '\n'  # [:-3]从路径尾部减几个字符,\n换行
            out.writelines(str)


class Shuju():
    def Dayin(self):
        while True:
            # jianting().main()
            t = jianting().main()
            return (t)


class jianting():
    def clipboard_get(self):
        """获取剪贴板数据"""
        data = pyperclip.paste()
        return data

    def main(self):
        """后台脚本:每隔0.2秒,读取剪切板文本,检查有无指定字符或字符串,如果有则执行替换"""
        # recent_txt 存放最近一次剪切板文本,初始化值只多执行一次paste函数读取和替换
        recent_txt = self.clipboard_get()
        while True:
            # txt 存放当前剪切板文本
            txt = self.clipboard_get()
            # 剪切板内容和上一次对比如有变动,再进行内容判断,判断后如果发现有指定字符在其中的话,再执行替换
            if txt != recent_txt:
                # print(f'txt:{txt}')
                recent_txt = txt  # 没查到要替换的子串,返回None
                return recent_txt

            # 检测间隔(延迟0.2秒)
            time.sleep(0.2)


if __name__ == '__main__':
    Shuju().lihai()

path = r"C:/Users/TAL/Desktop/A"  # 目标文件夹路径
out = open(r"C:/Users/TAL/Desktop/A/out.txt", 'w')
show_files(path)
out.close()


| 表头 | 表头 |
| ------ | ------ |
| 单元格 | 单元格 |
| 单元格 | 单元格 |



  • 写回答

3条回答 默认 最新

  • threenewbee 2023-07-05 11:56
    关注

    Dayin里面
    global path
    path = t
    把 path 放在程序前面

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月13日
  • 已采纳回答 7月5日
  • 创建了问题 7月5日