gpt4 book ai didi

python - 设置字符串格式以方便阅读和打印

转载 作者:行者123 更新时间:2023-12-01 02:27:24 25 4
gpt4 key购买 nike

我正在尝试使用变量格式化下面的字符串以提高可读性,我想将其分解,以便更容易阅读,现在它在脚本行中占用 199 个字符,我所做的每次尝试似乎都将其分解,所以打印时有很大的间隙,有人能解释一下吗?我尝试将其用 """三引号和\括起来,但在打印或记录时它仍然有空格。

 copy_sql = "COPY {0} FROM 's3://{1}/{2}' CREDENTIALS 'aws_access_key_id={3};aws_secret_access_key={4}' {5}; ".format(table_name,bucket,key,aws_access_key_id,aws_secret_access_key,options)

期望的结果将是这样的影响:

    copy_sql = "COPY {0} FROM 's3://{1}/{2}' \
CREDENTIALS 'aws_access_key_id={3};aws_secret_access_key={4}' {5}; \
".format(table_name,bucket,key, \
aws_access_key_id,aws_secret_access_key,options)

但是,当我打印它时,.gz 和凭据之间有很大的空格:

COPY analytics.table FROM 's3://redshift-fake/storage/2017-11-02/part-00000.gz'                         CREDENTIALS 'aws_access_key_id=SECRET;aws_secret_access_key=SECRET' DELIMITER '\t'  dateformat 'auto' fillrecord removequotes gzip;

我认为这仍然有效,但我想清理它以提高日志记录的可读性。

最佳答案

您可以使用string literal concatenation :

Multiple adjacent string literals (delimited by whitespace), possibly using different quoting conventions, are allowed, and their meaning is the same as their concatenation. Thus, "hello" 'world' is equivalent to "helloworld".

就您而言,是这样的:

copy_sql = ("COPY {0} FROM 's3://{1}/{2}' "
"CREDENTIALS 'aws_access_key_id={3};aws_secret_access_key={4}' {5};"
).format(table_name,bucket,key,
aws_access_key_id,aws_secret_access_key,options)

注意额外的括号以使其正确解析。只要行结尾至少在一对括号内,Python 就会始终将其视为行继续,而不需要反斜杠。

关于python - 设置字符串格式以方便阅读和打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47239393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com