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方法,它们实际上将整个文件内容读取到内存中,虽然你也可以逐行输出,但是你也可以跳着输出的(列表)。而你的这种方法-迭代器是不能直接跨行输出的,也就是说,你每次真的只从文件中读了一行,并且必须逐行读取,因为每次只读一行,所以占用内存极少,推荐的使用方法。