首页 > 解决方案 > 在 Python 中读取 .txt 文件时无意的字符带

问题描述

我有一个 Python 脚本,它从 .txt 文件中读取数据库表名,对它们执行一组 SQL 语句,然后导出一个带有结果的 .CSV 文件。.txt 文件如下所示:

TableA
TableB
TableC

我有读取该文件的代码如下所示:

f = open("table.txt", "r")
for s in f:
    cfg_tbl = s[0:len(s) -1]
    func_1(cfg_tbl)
f.close()

(func_1是执行sql的函数,不重要)

我遇到的问题是,当我保存 .txt 文件并且光标位于“TableC”中的“C”旁边时,“C”被截断。我必须在最后一个表之后用额外的空间保存文件,以便它工作。但如果我改变这个:

cfg_tbl = s[0:len(s) -1]

对此:

cfg_tbl = s[0:len(s)]

它出错了:

Invalid argument: 'TableA \n.csv'

任何想法如何读取 .txt 文件而不必考虑所需的额外空格,甚至是空行等。

谢谢

标签: pythonfiletext

解决方案


s[0:len(s) -1]用于删除每行末尾的换行符。问题是文件的最后一行没有以换行符结尾,所以你要删除文件名的最后一个字符。

使用该strip()方法从字符串中删除前导和尾随空格。

cfg_tbl = s.strip()

如果没有换行符,则不会删除任何内容。

顺便说一句,s[0:len(s) -1]可以更简单地写为s[:-1]. 当切片的结尾为负数时,它从结尾开始计数。


推荐阅读