Python Boto3配置文件创建:botocore.exceptions.ProfileNotFound:当文件中有多个aws配置文件名时,找不到配置配置文件错误

Python Boto3配置文件创建:botocore.exceptions.ProfileNotFound:当文件中有多个aws配置文件名时,找不到配置配置文件错误,python,amazon-web-services,boto3,Python,Amazon Web Services,Boto3,我有一个文件,accountlist,里面有AWS配置文件名 app01p1 app02p2 当我运行下面的AWS Boto3脚本时 import boto3 f = open("account.list", "r") for x in f: aws_mag_con = boto3.session.Session(profile_name=x) elbv2_con_re = aws_mag_con.client( ser

我有一个文件,accountlist,里面有AWS配置文件名

app01p1
app02p2
当我运行下面的AWS Boto3脚本时

import boto3

f = open("account.list", "r")
for x in f:
    aws_mag_con = boto3.session.Session(profile_name=x)
    elbv2_con_re = aws_mag_con.client(
        service_name="elbv2", region_name="us-east-1")

    response = elbv2_con_re.describe_load_balancers()
    print(response)
    for i in response['LoadBalancers']:
        print(i)

    print("Printing TargetGroups ....")
    response_tg = elbv2_con_re.describe_target_groups()
    for j in response_tg['TargetGroups']:
        print(j)
当account.list文件中有多个配置文件名时,我遇到以下错误。有什么想法吗

 ~/Documents/parc                                                                                                                                                                                                                                       
python3 boto3-desc-elbv2.py 
                                                                                                                                                                                                                                                                         
Traceback (most recent call last):
  File "/Users/nov/Documents/parc/boto3-desc-elbv2.py", line 5, in <module>
    aws_mag_con = boto3.session.Session(profile_name=x)
  File "/usr/local/lib/python3.9/site-packages/boto3/session.py", line 80, in __init__
    self._setup_loader()
  File "/usr/local/lib/python3.9/site-packages/boto3/session.py", line 120, in _setup_loader
    self._loader = self._session.get_component('data_loader')
  File "/usr/local/lib/python3.9/site-packages/botocore/session.py", line 685, in get_component
    return self._components.get_component(name)
  File "/usr/local/lib/python3.9/site-packages/botocore/session.py", line 924, in get_component
    self._components[name] = factory()
  File "/usr/local/lib/python3.9/site-packages/botocore/session.py", line 158, in <lambda>
    lambda:  create_loader(self.get_config_variable('data_path')))
  File "/usr/local/lib/python3.9/site-packages/botocore/session.py", line 240, in get_config_variable
    return self.get_component('config_store').get_config_variable(
  File "/usr/local/lib/python3.9/site-packages/botocore/configprovider.py", line 301, in get_config_variable
    return provider.provide()
  File "/usr/local/lib/python3.9/site-packages/botocore/configprovider.py", line 398, in provide
    value = provider.provide()
  File "/usr/local/lib/python3.9/site-packages/botocore/configprovider.py", line 459, in provide
    scoped_config = self._session.get_scoped_config()
  File "/usr/local/lib/python3.9/site-packages/botocore/session.py", line 340, in get_scoped_config
    raise ProfileNotFound(profile=profile_name)
botocore.exceptions.ProfileNotFound: The config profile (app03t1
) could not be found
~/Documents/parc
python3 boto3-desc-elbv2.py
回溯(最近一次呼叫最后一次):
文件“/Users/nov/Documents/parc/boto3-desc-elbv2.py”,第5行,在
aws\u mag\u con=boto3.session.session(profile\u name=x)
文件“/usr/local/lib/python3.9/site packages/boto3/session.py”,第80行,在__
self.\u设置\u加载程序()
文件“/usr/local/lib/python3.9/site packages/boto3/session.py”,第120行,在安装程序加载程序中
self.\u loader=self.\u session.get\u组件('data\u loader'))
文件“/usr/local/lib/python3.9/site packages/botocore/session.py”,第685行,在get_组件中
返回self.\u组件。获取\u组件(名称)
文件“/usr/local/lib/python3.9/site packages/botocore/session.py”,第924行,在get_组件中
self.\u组件[名称]=工厂()
文件“/usr/local/lib/python3.9/site packages/botocore/session.py”,第158行,在
lambda:create_loader(self.get_config_变量('data_path'))
文件“/usr/local/lib/python3.9/site packages/botocore/session.py”,第240行,在get\u config\u变量中
返回self.get\u组件('config\u store')。get\u config\u变量(
文件“/usr/local/lib/python3.9/site packages/botocore/configprovider.py”,第301行,在get\u config\u变量中
返回提供程序。提供()
文件“/usr/local/lib/python3.9/site packages/botocore/configprovider.py”,第398行,在提供中
value=provider.provide()
文件“/usr/local/lib/python3.9/site packages/botocore/configprovider.py”,第459行,在提供中
scoped_config=self.\u session.get_scoped_config()
文件“/usr/local/lib/python3.9/site packages/botocore/session.py”,第340行,在get\u scoped\u config中
raise ProfileNotFound(配置文件=配置文件\u名称)
botocore.exceptions.ProfileNotFound:配置配置文件(app03t1
)找不到

这意味着您的
~/.aws/config
文件不包含名为
app03t1
的配置文件。您可以使用
aws configure--profile app03t1
对其进行配置,也可以手动编辑该文件。我的~/.aws/config中确实有该文件。如果我运行app03t1、app01p1或app02p2,它会工作。但当我在fil中添加多个帐户时e、 它不起作用。
x
是否包含新行字符?这就是错误消息的样子。(编辑:如果是,删除新行可能会有帮助:
x=x.replace('\r','')。replace('\n','')
)谢谢,@BertBlommers,这正是问题所在!