簡體   English   中英

在Python中讀取.txt文件時出現無意的字符帶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM