正在将文件路径从.py发送到另一个.py



我正试图调用一个foo.py,并将一个filePath传递给bar.py

foo.py

for path in Path('./csvs').rglob('*.csv'):
exec(open('bar.py').read())
exec(open('bar2.py').read())
exec(open('bar3.py').read())

bar.py

df = pd.read_csv(path, usecols=cols)
#rest of code

有可能吗?

.read()处理一个文件后,您将处理一个字符串。因此,您可以.replace()作为占位符。

file1.py:

exec(open("file2.py").read().replace("*place_holder*", "10"))

file2.py:

def fn():
print("My number is *place_holder*")
fn()

但是要小心选择什么作为占位符。.replace()将替换所有出现的事件。

当然,对于更复杂的替换,您可以使用regex。它可以更好、更安全地限制搜索。

我不知道你的bar.py的确切格式,但你可以试试:

for filePath in Path('./csvs').rglob('*.csv'):
for i in range(1, 4):
with open(f`bar{i}.py`) as f;
bar_py_str = f.read()
bar_py_str = bar_py_str.replace(
'df = pd.read_csv(filePath, usecols=cols)',
f'df = pd.read_csv({str(filePath.resolve()}, usecols=cols)'
)
exec(bar_py_str)

相关内容

  • 没有找到相关文章

最新更新