python修改txt
1. python怎麼修改一個文件
通常的做法是先將文件的所有內容讀入內存,修改後再全部寫回原文件。
如果文件中所有數據的偏移地址都是固定的,那麼可以以r+方式打開文件,將文件指針移動到要修改的數據處,寫入新數據覆蓋即可。
2. python中怎麼進行txt文件的修改
# 導入正則包
import re
# 打開你的文件
with open('data.txt','r') as f:
# 讀取文件內容
content = f.read()
# 使用正則替換
res = re.sub('b1', 'b2', content)
print(res)
樓主可以具體查一下re.sub()的使用,希望能幫到你
待你強大...
3. Python 問題 我該如何快速的重載、刷新一個TXT文件
記錄最後一次修改時間,沒有變動就不需要再讀取內容了
4. 怎樣用python修改另外一個文件的參數,如修改.txt文件的裡面某一個參數
剛好其他有個問題涉及你的問題,我直接給你貼可以運行的代碼,純手工額:
#coding=utf-8
'''
Created on 2012-6-4
@author: Administrator
@note:
以下是具體代碼:
我用的Python2.7
需要在當前文件夾下創建script.py
'''
import wx
import wx.grid
class TestPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
#修改位置,在讀取的時候獲取,在修改文件的時候使用
self.offsetx = 0
self.offsety = 0
self.initGUI()
def initGUI(self):
self.createWidgets()
self.setPrepertise()
self.doyout()
def createWidgets(self):
self.xshow_textCtrl = wx.TextCtrl(self, -1)
self.yshow_textCtrl = wx.TextCtrl(self, -1)
self.change_btn = wx.Button(self, -1, label = u"修改")
self.Bind(wx.EVT_BUTTON, self.onChange, self.change_btn)
def onChange(self, evt):
#獲取修改的屬性
x = self.xshow_textCtrl.GetLabelText()
y = self.yshow_textCtrl.GetLabelText()
fl = open("script.py", "w")
#找到相應位置修改
fl.seek(self.offsetx)
fl.write("x = %s\n" % x)
fl.seek(self.offsety)
fl.write("y = %s\n" % y)
fl.close()
def doyout(self):
mainSizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(mainSizer)
#x顯示
xSizer = wx.BoxSizer(wx.HORIZONTAL)
mainSizer.Add(xSizer, 1, wx.EXPAND)
x_label = wx.StaticText(self, -1, label = "X:")
xSizer.Add(x_label, 0, wx.ALL, 10)
xSizer.Add(self.xshow_textCtrl, 0, wx.ALL, 10)
#y顯示
ySizer = wx.BoxSizer(wx.HORIZONTAL)
mainSizer.Add(ySizer, 1, wx.EXPAND)
y_label = wx.StaticText(self, -1, label = "Y:")
ySizer.Add(y_label, 0, wx.ALL, 10)
ySizer.Add(self.yshow_textCtrl, 0, wx.ALL, 10)
#按鍵
mainSizer.Add(self.change_btn, 0, wx.ALL, 10)
def setPrepertise(self):
x, y = self.getXY()
self.xshow_textCtrl.SetLabel(str(x))
self.yshow_textCtrl.SetLabel(str(y))
def getXY(self):
fl = open("script.py", "r")
msg = ""
line = fl.readline()
while line and line[-1]:
if line.startswith("x"):
msg += line
self.offsetx = fl.tell() - len(line)#得到x那行的起始位置
elif line.startswith("y"):
msg += line
self.offsety = fl.tell() - len(line)#得到y那行的起始位置
line = fl.readline()
x = 0
y = 0
exec msg#給x,y賦值
return x, y
class TestFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, None, title = u"測試Frame", size = (400, 300),
pos = (400, 200))
TestPanel(self)
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = TestFrame()
frame.Show()
app.MainLoop()
5. 如何用python 修改txt文件
def modifyip(tfile,sstr,rstr):
try:
lines=open(tfile,'r').readlines()
flen=len(lines)-1
for i in range(flen):
if sstr in lines[i]:
lines[i]=lines[i].replace(sstr,rstr)
open(tfile,'w').writelines(lines)
except Exception,e:
print e
modifyip('a.txt','a','A')
1
6. 利用python將docx文件轉為txt
背景:工作中需要將文件夾下的若干word文件docx轉換為對應txt文本格式
因此需要將docx中文本讀取出來,然後保存為txt格式即可
需要的python模塊為 python-docx : https://python-docx.readthedocs.io/en/latest/index.html, 導入模塊時候導入docx
(只能讀取.docx文件,不能讀取.doc文件)
注意,在PyPi里還有一個叫docx的庫,已經停止更新,不建議使用)
http://www.cnblogs.com/geek-arking/p/9300617.html
上面的方法只能讀取docx文件,如果讀取doc會報錯
結果報錯:docx.opc.exceptions.PackageNotFoundError: Package not found。還是無法識別doc
「改變拓展名並沒有改變其編碼方式,因此無法讀取文本內容,需將doc文件用word另存為docx後再用python-docx讀取其內容」
對於要轉換的doc文件,網上的資料都是使用win32,需要安裝 pypiwin32
https://www.cnblogs.com/AlgorithmDot/p/3386918.html
通過上面的方法,有時可以直接將doc轉換為txt文件,有時候會報錯。
這里我們可以考慮將doc文件直接轉換為docx然後再通過上面的方法讀取為txt,如果手動將doc修改為txt或者docx,打開文件會顯示亂碼,但是可以用其提供的SaveAs方法將.doc文檔利用手動的方式「另存為」.docx文檔,就能夠成功打開轉化後的.docx文檔,
doc.SaveAs(tmp +'.docx', 16)
其中16的含義如下:
利用win32com介面直接調用office API,好處是簡單、兼容性好,只要office能處理的,python都可以處理,處理出來的結果和office word裡面「另存為」一致。
下面是office 2007支持的全部文件格式對應表:
wdFormatDocument = 0
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreaks = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnabled = 20
wdFormatFlatXMLTemplate = 21
= 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
= 13
wdFormatXMLTemplate = 14
= 15
wdFormatXPS = 18
照著字面意思應該能對應到相應的文件格式。
1、新建或打開文件。這個比較簡單用docx的Document類,若指定路徑則是打開文檔;若沒有指定路徑則是新建文檔
2、保存文件。有打開,就有保存。用Document類的save方法,其中參數是保存的文件路徑,或者要保存的文件流。一般指定路徑即可。
doc.save(path_or_stream)
3、對象集合。python-docx包含了word文檔的相關對象集合。
4、插入段落。段落是word最基本的對象之一。
5、新增樣式。這個幫助文檔裡面說得不仔細,而且還是英文的。我手頭上的項目用到這個,就自己琢磨出怎麼使用,如下。
6、應用字元樣式。字元自然是在段落裡面的,可以採用下面方法給段落追加文字和設置字元樣式。
#插入一個空白段落
p = doc.add_paragraph('')
p.add_run('123', style="Heading 1 Char")
p.add_run('456')
p.add_run('789', style="Heading 2 Char")
#這樣一個段落就應用了兩個字元樣式,中間「456」就沒應用樣式
printp.text#輸出結果是u'123456789' 也還是連續的
7、設置字體。當然可以不用通過設置樣式對某些字進行設置,也可以直接設置。
p = doc.add_paragraph('')
r = p.add_run('123')
r.font.bold =True#加粗
r.font.italic =True#傾斜 等等...
8、表格操作。表格也是經常用到的一種對象類型。
7. python使用正則表達式替換txt內容
s='kfhakl,"dasf,fwg,gs,fatg,ta,",fasf,aga,wr,ga,czxv,"fsafa,rqr,cacv,",dasc'
l=[]
quoted=False
forchins:
ifch=='"':
quoted=notquoted
elifch==','andquoted:
l.append(',')
continue
l.append(ch)
s=''.join(l)
print(s)
8. 請問怎麼用python修改txt里的數字
這種問題,如果不是多次使用,何必用python,直接導入excel,將第三列+1放回去,重新導出為txt,逗號間隔萬事大吉
9. python替換txt文件中固定內容
讀取之後使用字元串的 replace方法,之後 save 到 txt 即可
使用pandas 讀取文件,循環遍歷每個元素,利用條件判斷
使用pandas讀取文件, 使用apply方法,還是使用 字元串的replace方法
使用正則表達式模塊re, 使用re的substring 方法或者replaece方法
10. python里怎樣替換,修改文本內容
當我們讀取文件中內容後,如果想要修改文件中的某一行或者某一個位置的內容,在python中是沒有辦法直接實現的,如果想要實現這樣的操作只能先把文件所有的內容全部讀取出來,然後進行匹配修改後寫入到新的文件中。
實例代碼如下所示:
備註:
1. 舊文件的內容
hello,world
yanyan is good girl
Good day is good day
2. 新文件在代碼執行後的內容
hello,world
yanyan is good girl
hello,yanyan
3. 需要注意的是許可權的問題,對於舊文件必須要有讀取許可權,對於新的文件必須要有寫入許可權