python文件間傳遞參數(shù)怎么實(shí)現(xiàn)

小億
163
2023-09-27 10:47:25

在Python中,可以使用命令行參數(shù)、環(huán)境變量、文件等方式在不同的Python文件之間傳遞參數(shù)。

1. 命令行參數(shù):可以使用`sys.argv`獲取命令行參數(shù)。`sys.argv[0]`表示當(dāng)前Python文件路徑,`sys.argv[1:]`表示傳遞的額外參數(shù)。示例如下:

```python
# file1.py
import sys

def main():
   print(sys.argv[0])  # 當(dāng)前文件路徑
   print(sys.argv[1])  # 傳遞的參數(shù)

if __name__ == "__main__":
   main()
```

執(zhí)行命令:`python file1.py arg1`,輸出:

```
file1.py
arg1
```

2. 環(huán)境變量:可以使用`os.environ`獲取環(huán)境變量。示例如下:

```python
# file1.py
import os

def main():
   print(os.environ.get('MY_ENV_VAR'))  # 獲取環(huán)境變量值

if __name__ == "__main__":
   main()
```

執(zhí)行命令(在Windows下):`set MY_ENV_VAR=hello`,然后執(zhí)行`python file1.py`,輸出:

```
hello
```

3. 文件:可以使用文件來(lái)傳遞參數(shù),例如將參數(shù)寫(xiě)入文件,然后讀取。示例如下:

```python
# file1.py
def write_params(path, params):
   with open(path, 'w') as f:
       for param in params:
           f.write(param + '\n')

def read_params(path):
   with open(path, 'r') as f:
       params = f.readlines()
   return [param.strip() for param in params]

def main():
   params = ['param1', 'param2', 'param3']
   write_params('params.txt', params)
   read_params('params.txt')

if __name__ == "__main__":
   main()
```

執(zhí)行`python file1.py`,然后執(zhí)行`python file2.py`(在另一個(gè)Python文件中),可以讀取`params.txt`文件中的參數(shù)。

以上是一些常見(jiàn)的方式,在不同的場(chǎng)景下可以選擇適合的方式來(lái)傳遞參數(shù)。

0