python 随机读取文件夹内一个文本文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 随机读取文件夹内一个文本文件相关的知识,希望对你有一定的参考价值。

python 随机读取文件夹内一个文本文件,该怎么写?

来个批量读取文件的例子:

def read_test_data():
    for parent,dirnames,filenames in os.walk(pbx_test_path):
        for filename in filenames:
            if filename[:5] == "TEST_":
                file_path = pbx_test_path+"\\%s" % filename
                #file_bak_path = pbx_test_path_bak+"\\%s" % filename
                if os.path.isfile(file_path):
                    #print file_path
                    read_by_file(file_path)
                    #shutil.copyfile(file_path,file_bak_path)
                    try:
                        os.remove(file_path)
                    except  WindowsError:
                        pass
                 
def read_by_file(file_path):
    file_object = open(file_path)
    count = 0
    thefile = open(file_path, 'rb')
    while True:
        buffer = str(thefile.readline())
        if not buffer:
            break
        all_test_list = buffer.split(";")
        all_test_list = all_test_list[:len(all_test_list)-1]#去除回车行
        ziduan_str = ""
        value_str = ""
        for i,test in enumerate(all_test_list):
            test_attr_list = test.split("=")
            ziduan_str += ""+test_attr_list[0]+","
            value_str += "'"+test_attr_list[1]+"',"
        ziduan_str = "("+ziduan_str[:len(ziduan_str)-1]+")"
        value_str = "("+value_str[:len(value_str)-1]+")"
        sql_str = "insert into pbx_test"+ziduan_str+" values"+value_str+""
        #mssql.insert(sql_str)
        session.execute(sql_str)
        count += buffer.count('\\n')
    commit()
    thefile.close()

参考技术A 第一步,遍历文件夹内全部文件。然后将文件放入一个列表中,然后在列表长度范围内随机一个出来作为列表下标。然后读取列表下标对应的文本文件。
# -*- coding: utf-8 -*-
import os
import random
file_path = r'E:\test1'
file_list = []
for i in os.listdir(file_path):
file_list.append(os.path.join(file_path,i))
index_file = random.randint(0,len(file_list)-1)
p = open(file_list[index_file])
print p.read()

python读取文本文件,如何将每行最后一个特定字符替换?

python读取文本文件,每行最后一个/替换为\
文本文件列子如下: /咖啡/速溶咖啡/测试数据/测试数据2, 20220201
/咖啡/拿铁/测试/测试2/测试3/测试4, 20220202
/咖啡/卡布奇诺/测试测试/测试测 20220202
/咖啡/美式 20220203
请问应该如何写python语句?

方法:

解释,s.count(\'/\')计算原来有多少个特定字符串,然后第一步全部替换,第二步将count-1个还原

参考技术A

按照你的要求编写的用正则表达式替换的Python程序如下(注意图中源代码的缩进)

import re

with open("test.txt",'r') as f:

 for line in f:

  line_data=line.strip("\\n")

  result=re.sub(r'^(.*)/',r'\\1\\\\',line_data)

  print(result)

追问

大佬,在此基础上请教下,因为我这个文本是上百万行的。  原来的是 E:\\咖啡\\速溶咖啡\\测试数据\\测试数据2, 20220201
E:\\咖啡\\拿铁\\测试\\测试2\\测试3\\测试4, 20220202
E:\\咖啡\\卡布奇诺\\测试测试\\测试测 ,20220202
E:\\咖啡\\美式 20220203

我想要的结果是你这个最后的结果,应该怎么来写呢。

追答

如果输出到控制台,可以用下面的Python程序(见图1)

如果要把文件中的内容转换后写到另一个文件,用下面的的Python程序(见图2)

本回答被提问者和网友采纳

以上是关于python 随机读取文件夹内一个文本文件的主要内容,如果未能解决你的问题,请参考以下文章

两个程序可以同时更新一个文本文件(实时通信)吗?

从文本文件中读取句子并使用 Python 3 附加到列表中 [关闭]

如何用python读取文本中指定行的内容

jmeter能不能随机读取csv文件中的参数?

python读取文本文件,如何将每行最后一个特定字符替换?

读取大文件(> 2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是啥?