1. 程式人生 > >python 去除檔案中多個換行

python 去除檔案中多個換行

轉自:http://yiyunyaya.blog.163.com/blog/static/1654496362013265749168/

今天在部落格園中看到一篇博文《python 去除多個換行》,試了作者的方法後,與之有很大的差別(不知道是不是由於用的python版本不同,我用的是Python 2.4.3),寫出來與大家分享!

輸入檔案:

XXX 手機:1XXXXXX 郵箱: [email protected].com QQ:XXXXX

目的:去除中間的多個換行,使得顯示更整齊美觀:) 方法: (一)博文《python 去除多個換行》中提到的方法:用字串的splitlines()和
strip()命令,程式碼見下:

import sys

input = open(sys.argv[1]) output = open(sys.argv[2],'w')

output.write('First one'+'\n') info = input.read() pp ='' for tt in info.splitlines(): tt=tt.rstrip()+'\n' pp=pp+tt output.write(pp)

input.close()
output.close()

測試結果:

First one XXX 手機:1XXXXXX 郵箱:

[email protected].com QQ:XXXXX

發現結果並不是我們預想的,後來在互動模式下測試了一下:

>>>print info.splitlines() ['XXX','','','\xe6\x89\x8b\xe6\x9c\xba\xef\xbc\x9a1XXXXXX','','','\xe9\x82\xae\xe7\xae\xb1\xef\xbc\x9a','','','[email protected]','','','QQ:XXXXX']

>>> len(info.splitlines()) 13

原來,雖然splitlines()沒有保留每行中的“\n”,但
info.splitlines()中的元素數與之前檔案的行數是相同的,在對每個元素進行 tt.rstrip()+'\n'操作時,又再每個元素中添加了一個“\n”,那麼在最後輸出的時候,就跟原來的檔案一樣了~~ (二)用字串的split()操作按照空白進行分割,再用“\n”連線,程式碼見下:

import sys import re input = open(sys.argv[1]) output = open(sys.argv[2],'w') info = input.read() output.write('-------\n'+'Second one'+'\n') output.write('\n'.join(info.split())+'\n')

input.close()
output.close()

測試結果:

Second one XXX 手機:1XXXXXX 郵箱: [email protected].com QQ:XXXXX

(三)用正則表達匹配中的re.sub()替換多個‘\n’,程式碼見下:

import sys import re input = open(sys.argv[1]) output = open(sys.argv[2],'w') info = input.read() output.write('-------\n'+'Third one'+'\n') output.write(re.sub('\n+','\n', info)) input.close()

output.close()

測試結果:

------- Third one XXX 手機:1XXXXXX 郵箱: [email protected].com QQ:XXXXX

(四)檔案一行一行讀,遇到只有“\n”的行時,則不輸出該行,程式碼見下:

import sys input = open(sys.argv[1]) output = open(sys.argv[2],'w') output.write('-------\n'+'Forth one'+'\n') whileTrue: line = input.readline() if len(line)==0: break elif len(line)>1: output.write(line) input.close() output.close()

測試結果:

------- Forth one XXX 手機:1XXXXXX 郵箱: [email protected].com QQ:XXXXX

由上面的結果可知,方法(一)不能達到預期的目的,而方法(二)、(三)、(四)都是可行的。

相關推薦

python 去除檔案

轉自:http://yiyunyaya.blog.163.com/blog/static/1654496362013265749168/ 今天在部落格園中看到一篇博文《python 去除多個換行》,試了作者的方法後,與之有很大的差別(不知道是不是由於用的python版本不

Python刪除list相同元素

個人 err val pos 倒序 pan move 信息 style pop和remove方法都可以刪除list中的元素,個人更傾向於使用remove方法,因為在刪除過程中不會打印信息,安靜的把任務完成。 pop方法:刪除過程中會打印信息 >>>

python 推導式if else 問題

count int 列表 foo sta ood food 別人 輸出 lis03=[[[‘food‘,‘feed‘,‘foot‘],‘good‘,[‘look‘,‘loof‘,‘like‘],‘book‘],[‘cool‘,‘our‘,‘you‘,‘how‘]]有這樣一個

Android去除字串空格製表符

兩種方法 去除字串中空格製表符換行: public String checkString(String str) { if (TextUtils.isEmpty(str)) r

c#替換字元的空格及中文字元

            xml = xml.Replace(" ", " ");             xml = xml.Replace("\t", "");             xml = Regex.Replace(xml, "[\r]{2,}", "\n");             xml =

python去除檔案的空格 || Tab || 回車

  在最近的開發工作中,為了應付比賽趕進度,服務端的json檔案都是人工寫的,寫完之後發現格式都是十分規整,易於人閱讀的json,但是客戶端請求不需要那些為了格式而在json裡面新增的空格、tab、回車等等沒用的字元,遂用python寫一指令碼,去除檔案中的空格、回車、換行

python檔案讀取資料,同時去除掉空格和

從檔案中讀取資料,同時去除掉空格和換行,程式碼如下 import numpy as np def sort(path): w = open(path,'r') l = w.readlines() col=[] for k in l: k = k.strip('\n')

Python個數組合併及列合併的幾簡單方法

採用numpy快速將兩個矩陣或數組合併成一個數組: import numpy as np 陣列 a = [[1,2,3],[4,5,6]] b = [[1,1,1],[2,2,2]] 1、陣列縱向合併 1) c = np.vstack((a,b)) c = array([

SQL 將一條記錄字段的值拼接為一個字段 && 將數據合並成一行,並且拼接CONVERT() 、for xml path的使用

varchar start 技術分享 現在 date rom 結果 技術 ont 接著上篇文章的訂單表(商品編號,價格設置時間id(類似於創建時間,創建時間約早,則act_id越小) ,價格的時間段,商品價格) 一、將一條記錄中多個字段的值拼接為一個字段 現要求將兩個時間

pythonQPushButton響應同一個事件

python中多個QPushButton響應同一個事件 注:在python2 的環境下執行 #! -*- coding:utf-8 -*- from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayou

python判斷檔案有否重複,逐檔案檢測另一檔案是否存在所讀內容

#!/bin/env python # coding:utf-8 #程式功能是為了完成判斷檔案中是否有重複句子 #並將重複句子打印出來 res_list = [] f = open('./downloadmd5.txt','r') res_dup = [] index = 0 file_d

去除檔案的空

def clear_space(): with open("test","r",encoding="utf-8") as fr: for line in fr: line = line.strip() if len(line) &g

統計程式碼檔案的實際有效數,去掉空、單行註釋、註釋

#coding=gbk import os #rootdir='f:\\pylianxi' def count_line_core(file_name): ##傳入單個檔案,統計行數,之後返回該檔案的實際程式碼行數;區分utf-8、gbk有待優化 print('core_file_name

eclipse程式碼每

eclipse每行多了換行符後出現該如何解決 方式如下: 去掉這些符號的方法是:window->general->editers->text editers 把show white

linux ln -s 實現tomcat 專案檔案共享

專案A   需要訪問專案B 的檔案, 可以通過 ln-s 命令 將 A 路徑連結到專案B 的路徑下。 [[email protected] insurance-mall]# service tomcat8 start^C [[email protecte

解決MapReduce檔案合併成大檔案問題

package inputformat; import java.io.IOException; import org.apache.commons.io.IOUtils; import org.apache.hadoop.conf.Configuration; import

linux ln -s 實現tomcat 專案檔案共享

專案A   需要訪問專案B 的檔案, 可以通過 ln-s 命令 將 A 路徑連結到專案B 的路徑下。 [[email protected] insurance-mall]# service tomcat8 start^C [[email protected] ins

0066 LinuxJava檔案打包成單個可執行jar檔案及其manifest.mf檔案編寫規則

現在我有三個Java類檔案:GuessGame.java Player.java GameLauncher.java(含主函式) 先用編譯命令: javac GuessGame.java Player

在Spring Boot模組使用對應的配置檔案

我們使用Spring Boot編寫多個模組開發時,我們希望各個模組使用各自的配置檔案,避免將整個專案的配置檔案都寫在一起,從而降低各個模組之間的耦合度。這裡有兩種方法讓各個模組讀取自己的配置檔案:先看看以下專案的目錄結構:有一個清晰的瞭解。我們讓各個模組讀取自己的配置檔案資訊

Python 獲取檔案最長的長度和最長

# Get the number of lonest line f = open('nihao') longestLine = max(len(line.strip()) for line in f) f.close() print longestLine # Get t