在此之前,我想指出的是,我对python和整个编程都是相当陌生的,所以如果我没有澄清我的问题,我深表歉意。如果是这样的话,请让我知道我做错了什么,我会修改我的问题。你知道吗
快速下线:
我创建了一个相当不错的脚本,它遍历一个特定文件夹目录中的一大堆TXT文件(现在大约120个)。如果TXT文件符合某些条件(filename.endswith(" ")
),则会启动一个循环,该循环将进入每个单独的文本文件,并通过regex查找所有电子邮件。对于在特定文件中查找电子邮件的每个实例,都会创建一个列表。一旦提取了所有这些电子邮件(并创建了相应的列表),它们就会通过xlsxwriter发送到Excel。你知道吗
主要问题:
当我打开创建的excel文件时,没有电子邮件/结果!此外,脚本运行时不会产生错误。当我一个文件一个文件地执行时,这个脚本工作得非常好(这意味着我使用文本文件的特定路径,而不是遍历整个文件夹)。我做错什么了?你知道吗
理想情况下(但没有问题重要): 我希望脚本在新创建的工作簿中为每个列表创建一个工作表,以这种方式进行组织。到目前为止,我在文件夹中有大约120个TXT文件,但是这些文件可以根据文件名进行分组(一个工作簿中有超过50张工作表是不实际的)。文件名是这样共享的。。。你知道吗
Client_Info_LA(1) , Client_Info_LA(2), Self_Info(1),Self_Info(2)
因此,把所有的客户信息都组织在一张纸上,而把自己的信息组织在另一张纸上(当时正在考虑用熊猫来分组)。对我来说,这并不像让脚本把我需要的数据输出到Excel中那样重要,但是如果有人知道如何解决这个问题,那就真的很有帮助了!你知道吗
import re
import xlsxwriter
import os
'Create List of Lists'
n = len(os.listdir("C:\\Users\\me\\Desktop\\Emails_Project\\Txt_Emails"))
lists = [[] for _ in range(n)] #For stack peeps: Is the list of lists causing the issue?
workbook = xlsxwriter.Workbook('TestEmails1.xlsx')
worksheet = workbook.add_worksheet()
'Find emails'
for filename in os.listdir("C:\\Users\\me\\Desktop\\Emails_Project\\Txt_Emails"):
if filename.endswith(".txt") :
for emails in filename:
if re.findall(r"[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+", emails):
lists.append(emails)
worksheet.write_column('A2', lists)
else:
continue
workbook.close()
我一直在网上搜索,尝试了很多方法,但都没有成功。这真的是我的最后手段,所以如果有人能给我一些指导,建议,或洞察如何解决这个问题,我会非常感谢!你知道吗
提供的代码中主要有两个问题。你知道吗
file_name
是一个字符串(字符列表)。因此,for循环for emails in file_name:
将迭代字符串file_name
的字符元素。因此,emails
是一个字符。你知道吗worksheet.write_column('A2', lists)
因为每次都指定相同的单元格。你知道吗下面是一个建议的代码片段,它将从不同文件中找到的电子邮件写入同一工作表中的不同列。你知道吗
相关问题 更多 >
编程相关推荐