python文件有哪些操作

使用文件:

  • 文件迭代器是最好的讀取行工具,文件也有個迭代器會自動在for循環,列表解析或者其他迭代語句中對文件進行逐行讀取。

  • 讀取內容是字元串,而不是對象,文件讀取的數據回到腳本時是一個字元串

  • close是通常選項,文件上下文管理器是一種替代方法。但close()是一個好習慣。

  • 其他文件工具

    open函數及其返回的文件對象是python腳本中通向外部文件的主要介面,但還有其他的類似工具:

  • 標准流,在sys模塊中預先打開的文件對象

  • os模塊中的描述文件

  • sockets、pipes和FIFO文件,文件類對象同步進程、網路通信

  • 通過鍵來存取的文件,通過鍵直接存儲的不變的python對象

  • Shell命令流,os.popen、subprocess.Popen這樣的工具

  • 第三方開源的文件類工具等

❷ 關於python中的文件操作問題

思路

使用json模塊,儲存是最方便的,下面給出具體代碼示例

代碼

"""
我現在有一張列表,列表裡邊回是若干個字典答,這個列表可以作為參數給到一個函數里,列印出一張表格。
現在我把列表寫到一個txt文件中,當然保存到文件中的是字元串形式,我再重新讀取這個文件中的內容時,
之前的列表只能以字元串的形式取出,請問怎麼把這個字元串再轉換為之前的列表來使用?
"""

importjson


defprint_list(my_list):
print(my_list)


my_list=[
{
'name':'singi'
},
{
'name':'sunjun'
}
]

file_name='my_list.json'

#寫入文件
withopen(file_name,'w')asf:
json.mp(my_list,f)

#讀取文件
withopen(file_name)asf:
my_list_load=json.load(f)
print_list(my_list_load)

輸出

[{'name':'singi'},{'name':'sunjun'}]

❸ python文件寫操作

這樣把
教你個簡單的辦法
python一般不會在原文件中操作的,一般會讀出來版,操作,然後權再寫入的。代碼如下:
#encoding:gbk
insert='123'
#你想插入的字元串
line=''
#最終文件內容
f=open("1.txt","r")
i=f.readline()
#讀取文件內容
f.close()
pre=i[0:3]
last=i[3:]
line=pre+insert+last
f=open("1.txt","w")
f.write(line)
f.close()

❹ 關於python里寫文件的操作

  1. fo.close()---你小括弧沒有。

  2. fo = open("D:/text一.txt","w",encoding = 'utf-8')
    ls = ['13','14','15']
    fo.writelines(ls)
    fo.close()

  3. 文件在內d盤下面容

❺ python 文件讀寫

E:/hanhan/..html一看就不存在呀。

❻ Python如何用文件操作把執行結果保存到文件里

最簡單的寫法是用with,比如:
list1=['aaa','bbb','ccc']
with open('filename.txt','w')as fl:
for line in list1:

fl.write(line + '\n')
上面的運行結果會生成那個名字的文本,沒有則會創建。我這里只是展示一下最簡單的文本操作方法。請自行網路自己認真了解一下。小甲魚視頻裡面有相關教程和許多關於這個的練習題,你也可網路看看。

❼ python文件操作問題

由於你寫的是相對路徑,運行時要注意當前工作目錄是什麼,在CMD中,就是前面提版示符的權路徑。CMD的默認工作目錄是當前用戶目錄,即C:\Users\用戶名,此時運行你的python程序,那麼open("yesterday.txt")將會試圖在這個目錄下尋找yesterday.txt文件,找不到則會報錯。

❽ python文件讀寫問題

打開文件讀取後,用split(',')得到包含所有數據的列表,然後切片處理你要的數據寫入新文件

❾ python 文本文件處理

  1. 分隔日誌文件存為小文件

  2. #coding:utf-8

  3. #file: FileSplit.py

  4. import os,os.path,time

  5. def FileSplit(sourceFile, targetFolder):

  6. sFile = open(sourceFile, 'r')

  7. number = 100000 #每個小文件中保存100000條數據

  8. dataLine = sFile.readline()

  9. tempData = [] #緩存列表

  10. fileNum = 1

  11. if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建

  12. os.mkdir(targetFolder)

  13. while dataLine: #有數據

  14. for row in range(number):

  15. tempData.append(dataLine) #將一行數據添加到列表中

  16. dataLine = sFile.readline()

  17. if not dataLine :

  18. break

  19. tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + str(fileNum) + ".txt")

  20. tFile = open(tFilename, 'a+') #創建小文件

  21. tFile.writelines(tempData) #將列表保存到文件中

  22. tFile.close()

  23. tempData = [] #清空緩存列表

  24. print(tFilename + " 創建於: " + str(time.ctime()))

  25. fileNum += 1 #文件編號

  26. sFile.close()

  27. if __name__ == "__main__" :

  28. FileSplit("access.log","access")


分類匯總小文件:

#coding:utf-8

#file: Map.py


import os,os.path,re


def Map(sourceFile, targetFolder):

sFile = open(sourceFile, 'r')

dataLine = sFile.readline()

tempData = {} #緩存列表

if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建

os.mkdir(targetFolder)

while dataLine: #有數據

p_re = re.compile(r'(GET|POST)s(.*?)sHTTP/1.[01]',re.IGNORECASE) #用正則表達式解析數據

match = p_re.findall(dataLine)

if match:

visitUrl = match[0][1]

if visitUrl in tempData:

tempData[visitUrl] += 1

else:

tempData[visitUrl] = 1

dataLine = sFile.readline() #讀入下一行數據

sFile.close()


tList = []

for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):

tList.append(key + " " + str(value) + ' ')


tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + "_map.txt")

tFile = open(tFilename, 'a+') #創建小文件

tFile.writelines(tList) #將列表保存到文件中

tFile.close()


if __name__ == "__main__" :

Map("access\access.log1.txt","access")

Map("access\access.log2.txt","access")

Map("access\access.log3.txt","access")

3. 再次將多個文件分類匯總為一個文件。

#coding:utf-8

#file: Rece.py


import os,os.path,re


def Rece(sourceFolder, targetFile):

tempData = {} #緩存列表

p_re = re.compile(r'(.*?)(d{1,}$)',re.IGNORECASE) #用正則表達式解析數據

for root,dirs,files in os.walk(sourceFolder):

for fil in files:

if fil.endswith('_map.txt'): #是rece文件

sFile = open(os.path.abspath(os.path.join(root,fil)), 'r')

dataLine = sFile.readline()

while dataLine: #有數據

subdata = p_re.findall(dataLine) #用空格分割數據

#print(subdata[0][0]," ",subdata[0][1])

if subdata[0][0] in tempData:

tempData[subdata[0][0]] += int(subdata[0][1])

else:

tempData[subdata[0][0]] = int(subdata[0][1])

dataLine = sFile.readline() #讀入下一行數據

sFile.close()


tList = []

for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):

tList.append(key + " " + str(value) + ' ')


tFilename = os.path.join(sourceFolder,targetFile + "_rece.txt")

tFile = open(tFilename, 'a+') #創建小文件

tFile.writelines(tList) #將列表保存到文件中

tFile.close()


if __name__ == "__main__" :

Rece("access","access")

❿ python文件操作

這是使用迭代器的方法讀取文件內容,這種方法的好處是佔用內存空間較少。如果你使用readlines,read方法,它們實際上將整個文件內容讀取到內存中,雖然你也可以逐行輸出,但是你也可以跳著輸出的(列表)。而你的這種方法-迭代器是不能直接跨行輸出的,也就是說,你每次真的只從文件中讀了一行,並且必須逐行讀取,因為每次只讀一行,所以佔用內存極少,推薦的使用方法。