所以我以前总是使用 hack 之类的方法进行编码if type(my_list[0]) == str
,但后来我了解了这种isinstance
方法,我有了一个想法:
如果我可以运行我自己的搜索和替换函数来使我的代码更高效和 Python 怎么办?
所以我有一个脚本的想法,我会向你描述它:
def fix_script(find,replace,*args):
#code goes here
这将做什么,是在args
for中搜索文件find
,并将其替换为replace
...这是棘手的部分...我希望能够以某种代数替换的方式来做到这一点。这是一个例子:
find = 'type({x}) == {y}:'
replace == 'isinstance({x},{y}):'
import os
directory = "Users/name/..."
files = os.listdir(directory)
fix_script(find,replace,files[0],files[1],files[2])
所以让我们说files[0]
看起来像这样:
import pandas as pd
df = pd.read_csv('my_file.csv')
tester = df.number[0]
if type(tester) == str:
#do something
elif type(tester) == int:
#do something
elif type(tester) == float:
#do something
else:
print "invalid type"
函数运行后,该文件将被覆盖,如下所示:
import pandas as pd
df = pd.read_csv('my_file.csv')
tester = df.number[0]
if isinstance(tester,str):
#do something
elif isinstance(tester,int):
#do something
elif isinstance(tester,float):
#do something
else:
print "invalid type"
因此,有两个部分可以使这成为可能:
- 能够编写一个能够进行代数搜索的函数
- 让该函数能够采用 python 脚本,并覆盖其中的一部分
如果这是可能的,有什么想法,如果可以,我该如何实现?
注意:我需要一个可以通过不同的查找和替换来执行此操作的函数。