![](/img/trans.png)
[英]How to efficiently strip tabs character from a txt format file with Python
[英]Inadvertent character strip when reading .txt file in Python
我有一個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文件而無需考慮所需的額外空間,甚至空行等的任何想法。
謝謝
您正在使用s[0:len(s) -1]
刪除每行末尾的換行符。 問題在於文件的最后一行不以換行符結尾,因此您要以此刪除文件名的最后一個字符。
使用strip()
方法從字符串中刪除前導和尾隨空格。
cfg_tbl = s.strip()
如果沒有換行符,它將不會刪除任何內容。
順便說一句, s[0:len(s) -1]
可以更簡單地寫為s[:-1]
。 當切片的結尾為負數時,它將從結尾開始計數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.