Python中文
首页
教程
问答
标签
搜索
登录
注册
模块“self”在类格式中没有属性“file”错误
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在构建一个python代码,以使用pandas验证给定CSV文件中的电子邮件地址和电话号码,并且我想编写一个单独的CSV文件,其中只包含验证过的值。我对python完全陌生,我已经为该功能编写了如下代码:</p> <pre><code>from email_validator import validate_email, EmailNotValidError import pandas as pd import re file = r'sample.csv' filtered = r'filtered.csv' valid = r'Valid.csv' df=pd.read_csv(file) def eVali(dataFrame): try: validate_email(dataFrame) return True except EmailNotValidError: return False def phoneValid(dataFrame): if re.search("\w{3}-\w{3}-\w{4}",dataFrame): return True else: return False df["Email_validate"] = df['email'].apply(eVali) df_fltrd = df[df['Email_validate']] #del df_fltrd['Email_validate'] print(df_fltrd) df_fltrd["Phone_validate"] =df_fltrd['phone'].apply(phoneValid) df_valid = df_fltrd[df_fltrd["Phone_validate"]] del df_valid["Phone_validate", "Email_validate"] print(df_valid) df_fltrd.to_csv(filtered) df_valid.to_csv(valid) </code></pre> <p>这段代码运行良好,我可以根据需要创建一个带有验证值的新CSV。但是当我试图用正确的方法将代码组织为一个正确的类时,它给出了一个错误提示</p> <pre><code>Traceback (most recent call last): File "E:\myTasks\validator.py", line 7, in <module> class Validator: File "E:\myTasks\validator.py", line 47, in Validator validation(self.file) AttributeError: module 'self' has no attribute 'file' </code></pre> <p>这是我创建的类</p> <p><strong>Validator.py</strong></p> <pre><code> import self as self from email_validator import validate_email, EmailNotValidError import pandas as pd import re class Validator: def __init__(self): self.file = r'sample.csv' self.outFile =r'filteredSample.csv' def emailValid(dataframe): try: validate_email(dataframe) return True except EmailNotValidError: return False def phoneValid(dataframe): if re.search("\w{3}-\w{3}-\w{4}", dataframe): return True else: return False def validation(self): df = pd.read_csv(self.file) df = df.copy(); df["Email_validate"] = df['email'].apply(Validator.emailValid) df_filtered = df[df['Email_validate']] print(df_filtered) df_filtered["Phone_validate"] = df_filtered['phone'].apply(Validator.phoneValid) df_valid = df_filtered[df_filtered["Phone_validate"]] del df_valid["Email_validate"] del df_valid["Phone_validate"] print(df_valid) df_valid.to_csv(self.outFile) validation(self) </code></pre> <p>谁能帮我一下吗。非常感谢。提前谢谢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>嗯,您不能从类本身调用实例方法</p> <pre><code>validation(self) </code></pre> <p>该位应该在类之外,例如,可以在实例化验证器对象后从主函数调用它</p> <pre><code>my_validator = Validator() my_validator.validation() </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
9 回答
如何在乒乓球游戏中阻止球
10 回答
如何在乘法和模中不乘空间?
2 回答
如何在乘法和除以2个不同的数字之间进行交换?
4 回答
如何在也是数据一部分的单个字符上拆分大字符串
5 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
8 回答
如何在事件wxWidgets中传递自定义数据
7 回答
如何在事件中使用lambda i=i?
2 回答
如何在事件中心只接收最近的数据
10 回答
如何在事件发生之前保持云函数运行?
3 回答
如何在事件发生后使页面重定向到同一页面
9 回答
如何在事件回调之间保持python生成器的状态
7 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
9 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
7 回答
如何在事件处理程序中访问外部对象?
5 回答
如何在事件循环中将协程打包为正常函数?
2 回答
如何在事件循环之外运行协同程序?
7 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
4 回答
如何在事件文件中只保留一份摘要?
9 回答
如何在事件模板中添加事件
7 回答