如何用Python脚本改写Python文件?导入file2.py时重写变量的疑问
解决导入变量后改写原文件的问题
首先得明确:当你import file2的时候,Python只是把file2里的变量加载到内存里,内存里的修改不会自动同步回原文件,所以咱们得手动完成「读变量→修改→写回文件」这整套流程。
假设你的file2.py内容是这样的(纯变量定义):
# file2.py num = 0 score = 100
接下来看file1.py的实现步骤:
步骤1:导入变量并修改
先导入file2的变量,然后按你的需求递增:
# file1.py import file2 # 递增变量(这里按你的需求来,比如每个变量加1) file2.num += 1 file2.score += 1
步骤2:改写file2.py文件
现在要把修改后的变量写回原文件,关键是要保持正确的Python语法格式,这样下次导入才不会出错:
# 继续在file1.py里写下面的代码 # 打开file2.py,用'w'模式会直接截断原内容 with open('file2.py', 'w') as f: # 把每个变量以Python赋值语句的格式写入 f.write(f"num = {file2.num}\n") f.write(f"score = {file2.score}\n")
注意事项
- 如果file2里的变量类型不是数字(比如字符串、布尔值),要注意写入时的格式,比如字符串要加引号:
f"name = '{file2.name}'\n" - 确保file1和file2在同一目录下,如果不在,要写完整的文件路径(比如
/home/user/project/file2.py) - 这种方法只适合file2里只有变量定义的情况,如果file2有其他代码(比如函数、类),需要用更复杂的文本解析方式(比如正则匹配变量行),但你说file2仅包含变量,所以这个方法完全够用。
测试一下:运行file1.py之后,打开file2.py,就能看到变量已经变成递增后的值啦~
内容的提问来源于stack exchange,提问作者Xandy
相关产品推荐
相关产品推荐

