如何避免换行编码? [复制]

Posted

技术标签:

【中文标题】如何避免换行编码? [复制]【英文标题】:How can I avoid line break coding? [duplicate] 【发布时间】:2019-12-02 14:58:58 【问题描述】:

我正在创建一个循环来发送从 txt 文件获取数据的 HTTP 请求,但在变量中我得到一个我不知道如何删除的换行符:

import requests

file = open("uuids.txt", "r")

for uuid in file:
    url = 'http://ip:port/api/assets/changeAssetTemplates/'.format(uuid)
    headers = 
        ...
    
    print(url)
    response = requests.request("GET", url, headers=headers)
    print(response.text)

第一个印刷品是这样画的:

http://ip:port/api/assets/changeAssetTemplates/f4c71dd5-13af-428a-a3a5-4cbaf10d9bd3

一个好的网址。但是第二个打印显示了请求中的错误:

"timestamp":1563971402621,"status":404,"error":"Not Found","message":"No message available","path":"/api/assets/changeAssetTemplates/f4c71dd5-13af-428a-a3a5-4cbaf10d9bd3%0A"

我们可以看到从 uuid 变量中获取的数据正在换行 (%0A),我想知道如何避免这个问题。

顺便说一个uuids.txt的例子:

f4c71dd5-13af-428a-a3a5-4cbaf10d9bd3
1a71d6dc-a9b3-43fa-b675-747af9d7c202
2465ea64-3334-44b1-8f23-16e4df3aeea1
2fb98bba-d03d-495a-b5a2-9656bf623854
7a2aca40-dc5c-4aec-b700-7d0a91d39dd8
983ce44b-ab24-49bb-b128-8a30712dc2ca
2487e2ed-bff5-4195-ab5e-875210e634b0
965c62da-7c7a-4bf3-a0b8-de60d9b392dd
8b9bcf8c-0163-48cc-8603-3447ab7f29f6
0a7a5db9-67be-4a2a-af58-0189565caa2d

【问题讨论】:

【参考方案1】:

您可以简单地删除 uuid 中的最少字符:

url = 'http://ip:port/api/assets/changeAssetTemplates/'.format(uuid[:-1])

另一种解决方案:

url = 'http://ip:port/api/assets/changeAssetTemplates/'.format(uuid.rstrip("\n"))

PS:readline方法的Python文档https://docs.python.org/3.3/tutorial/inputoutput.html

f.readline() 从文件中读取一行;换行符 (\n) 留在字符串的末尾,仅在最后一个省略 如果文件不以换行符结尾,则为文件的行。这使得 返回值明确;如果 f.readline() 返回一个空字符串,则 已到达文件末尾,而空行表示为 '\n',一个只包含一个换行符的字符串。

【讨论】:

【参考方案2】:

只需像这样从 uuid 中删除换行符:

for uuid in file:
    url = 'http://ip:port/api/assets/changeAssetTemplates/'.format(uuid.replace('\n',''))
    headers = 
        ...
    
    print(url)
    response = requests.request("GET", url, headers=headers)
    print(response.text)

如果您在 Windows 上请注意,换行符可能是 '\r\n' 而不是 '\n'

【讨论】:

uuid = uuid.strip() 是删除所有尾随和前导空格的 Pythonesque 方式,它也处理 \r\n

以上是关于如何避免换行编码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何防止excel保存后更改csv文件编码? [复制]

如何阻止文本区域自动换行? [复制]

如何按换行符拆分字符串? [复制]

当字符串包含“↵”时如何换行? [复制]

如何防止 Python 打印添加换行符或空格? [复制]

如何在 C++ 中使 cin 不换行? [复制]