如何读取刚刚由python中的函数创建的文件

     2023-03-14     264

关键词:

【中文标题】如何读取刚刚由python中的函数创建的文件【英文标题】:How to read a file that was just created by a function in python 【发布时间】:2019-12-24 08:47:16 【问题描述】:

当我尝试读取刚刚由上面的函数创建的文件时,我得到了空白行。当我在不同的文件中运行相同的代码时,它只运行文件。我看到那个文件已经关闭了。但是当我尝试打开并打印时。我得到空行。

我已将尝试读取的相同代码复制到不同的测试文件并运行该代码。我正在阅读文件并打印行并关闭文件。

def running_symm_list_cmd():
    try:

        path_to_output_file = "symm_list_out.txt"
        myoutput = open(path_to_output_file, 'w')
        symm_list = "sudo symcfg list"
        Popen([symm_list], shell=True, stdout=myoutput, stderr=myoutput, universal_newlines=True)

    except OSError or ValueError as error_str:
        print(error_str)
        os.system(exit(2))
    finally:
        myoutput.close()
        print("checking if file is closed or not ".format(myoutput.closed))


def getting_symm_list():

    try:
        print("INSIDE getting_symm_list TRY  function")
        symm_list = 
        path = "/users/pjinde/scripts/symm_list_out.txt"
        symm_list_file = open(path, 'r')
        print("file mode is m and file name is n".format(m=symm_list_file.mode, n=symm_list_file.name))
        for line in symm_list_file.readlines():
            #print(line)
            symm_ids = re.search(r'(000197\d+)\s+\w+.*', line, re.M | re.I)
            if symm_ids:
                symm_list[symm_ids.group(1)] = None
                #print("Symmetrix id is ".format(symm_ids.group(1)))

        for ids in symm_list.keys():
            print("symmetrix_id are ".format(ids))

    except OSError as err:
        print("unable to get symm list due to error ".format(err))
    finally:
        symm_list_file.close()
    return symm_list

我期待低于输出。这说明我能够创建字典 symm_list。

INSIDE getting_symm_list TRY  function
file mode is r and file name is /users/abcd/efcg/symm_list_out.txt
symmetrix_id are 00019780aaaa
symmetrix_id are 00019780aabc
symmetrix_id are 00019780aadd
symmetrix_id are 00019780aaee
symmetrix_id are 00019780aaff
symmetrix_id are 00019780aaeg
symmetrix_id are 00019790bbbb

非常感谢任何帮助!谢谢。

【问题讨论】:

由于 Popen 运行不对称,您是否尝试过等待 Popen 完成后再关闭文件? p = Popen(...) p.wait() 只是一个快速的刺,没有 mutchoughtt 我认为你是对的@Svavelsyra。我使用了 subprocess.call 而不是 Popen。我打算使用 Popen,因为我打算通过管道来执行 shell 命令。我改变主意了。 【参考方案1】:

Popen 异步运行,或者我使用 Popen.wait() 直到子进程完成。或者我们可以只使用 subprocess.call

def running_symm_list_cmd():
    try:

        path_to_output_file = "symm_list_out.txt"
        myoutput = open(path_to_output_file, 'w')
        symm_list = "sudo symcfg list"
        p1 = subprocess.call([symm_list], shell=True, stdout=myoutput, stderr=myoutput)

    except OSError or ValueError as error_str:
        print(error_str)
        os.system(exit(2))
    finally:
        myoutput.close()
        print("checking if file is closed or not ".format(myoutput.closed))


def getting_symm_list():

    try:
        symm_list = 
        path = "/users/pjinde/scripts/symm_list_out.txt"
        symm_list_file = open(path, 'r')
        #print("file mode is m and file name is n".format(m=symm_list_file.mode, n=symm_list_file.name))
        for line in symm_list_file.readlines():
            #print(line)
            symm_ids = re.search(r'(000197\d+)\s+\w+.*', line, re.M | re.I)
            if symm_ids:
                symm_list[symm_ids.group(1)] = None
                #print("Symmetrix id is ".format(symm_ids.group(1)))

        for ids in symm_list.keys():
            print("symmetrix_id are ".format(ids))

    except OSError as err:
        print("unable to get symm list due to error ".format(err))
    finally:
        symm_list_file.close()
    return symm_list

【讨论】:

如何创建 Python 用户定义函数来读取 CSV 文件?

】如何创建Python用户定义函数来读取CSV文件?【英文标题】:HowtocreatePythonuserdefinedfunctiontoreadCSVfiles?【发布时间】:2021-10-0621:48:55【问题描述】:我想创建一个函数来读取我想要导入为CSV的每个文件,并且我想要读取的所有文件... 查看详情

读取由 s3 事件触发的文件

】读取由s3事件触发的文件【英文标题】:readingfilestriggeredbys3event【发布时间】:2018-04-0606:55:43【问题描述】:这是我想做的:用户将csv文件上传到AWSS3存储桶。上传文件后,S3存储桶会调用我创建的lambda函数。我的lambda函数读取... 查看详情

如何在 python 中使用 Azure 函数读取 Azure blob 文件?

】如何在python中使用Azure函数读取Azureblob文件?【英文标题】:howtoreadtheAzureblobfilewithAzurefunctioninpython?【发布时间】:2021-12-1821:00:09【问题描述】:我是Azure云的新手。现在我希望创建一个工作流程:将音频文件上传到blob-->调... 查看详情

Python:如何读取文件并将某些列存储在数组中

】Python:如何读取文件并将某些列存储在数组中【英文标题】:Python:Howtoreadfileandstorecertaincolumnsinarray【发布时间】:2016-04-0718:57:56【问题描述】:我正在从文件中读取数据集(由空格分隔)。我需要存储除数组data中的最后一列... 查看详情

C++ - 试图创建一个将文件中的数据读取到结构数组中的函数?

】C++-试图创建一个将文件中的数据读取到结构数组中的函数?【英文标题】:C++-Tryingtocreateafunctionthatreadsdatafromafileintoanarrayofstructs?【发布时间】:2014-05-1419:16:22【问题描述】:我看过几个类似的问题,但我似乎仍然无法理解这... 查看详情

python中如何读取文件

文本文件可存储的数据量多、每当需要分析或修改存储在文件中的信息时,读取文件都很有用,对数据分析应用程序处理文件,让程序能够快速地分析大量的数据处理文件和保存数据可让你的程序使用起来更容易一、从文件中读... 查看详情

如何从 Python 中的 URL 读取图像数据?

】如何从Python中的URL读取图像数据?【英文标题】:HowdoIreadimagedatafromaURLinPython?【发布时间】:2011-11-1513:22:07【问题描述】:当我们处理本地文件时,我尝试做的事情相当简单,但是当我尝试使用远程URL执行此操作时,问题就出... 查看详情

如何识别并正确解析由 Python 创建的 csv 数据中的列表

】如何识别并正确解析由Python创建的csv数据中的列表【英文标题】:HowtorecognizeandappropriatelyparsealistwithincsvdatathatwascreatedbyPython【发布时间】:2017-10-0819:30:15【问题描述】:我正在使用Python在CSV中导出和导入数据。写入CSV时,一些... 查看详情

如何创建只能由特定类使用的构造函数。 (C# 中的 C++ Friend 等效项)

】如何创建只能由特定类使用的构造函数。(C#中的C++Friend等效项)【英文标题】:Howtocreateaconstructorthatisonlyusablebyaspecificclass.(C++Friendequivalentinc#)【发布时间】:2011-01-0206:27:55【问题描述】:据我所知,在C#中,不支持C++中的“... 查看详情

Python中的私有构造函数

...tructorinPython【发布时间】:2012-01-0223:11:18【问题描述】:如何创建一个只能由类的静态函数调用而不是从其他地方调用的私有构造函数?【问题讨论】:Python中没有私有与公共方法的概念。PythonisnotJava.@Tadeck,请停止错误地纠正... 查看详情

Python:读取文件时如何忽略#comment行

】Python:读取文件时如何忽略#comment行【英文标题】:Python:Howtoignore#commentlineswhenreadinginafile【发布时间】:2010-12-1422:33:38【问题描述】:在Python中,我刚刚从文本文件中读取了一行,我想知道如何编写代码以忽略行首带有哈希#... 查看详情

如何使用 pandas 读取 csv 以创建由 3 列组成的矩阵

】如何使用pandas读取csv以创建由3列组成的矩阵【英文标题】:Howtoreadacsvwithpandastocreateamatrixcomposedby3column【发布时间】:2021-12-2908:02:55【问题描述】:我在我的代码中使用这个声明来创建一个电影标签。但是,如何使用具有相同... 查看详情

如何从 python 中的嵌套 YAML 文件中读取数据?

】如何从python中的嵌套YAML文件中读取数据?【英文标题】:HowtoreaddatafromnestedYAMLfileinpython?【发布时间】:2020-07-0513:56:24【问题描述】:我有例如swagger.yaml文件,我想从中读取一些变量。例如那个文件:https://editor.swagger.io/下面... 查看详情

说说如何利用python处理csv文件

参考技术ACSV表示“Comma-SeparatedValues(逗号分隔的值)”,CSV文件是简化的电子表格,实际为纯文本文件。一个CSV文件,格式是这样的:因为CSV文件中的每个单元格都是以逗号分割,所以也许有人会对每行文本调用split()方法,来... 查看详情

如何从 Python 中的文件/流中懒惰地读取多个 JSON 值?

】如何从Python中的文件/流中懒惰地读取多个JSON值?【英文标题】:HowIcanIlazilyreadmultipleJSONvaluesfromafile/streaminPython?【发布时间】:2011-10-1617:00:51【问题描述】:我想从Python中的文件/流中读取多个JSON对象,一次一个。不幸的是json... 查看详情

如何从python中的excel文件中读取日期?

】如何从python中的excel文件中读取日期?【英文标题】:Howtoreaddatefromanexcelfileinpython?【发布时间】:2021-09-1311:58:31【问题描述】:我有一个excel文件,它的第一列写为31.12.201823.30,并且持续了一年。如何在python中转换它,以便以... 查看详情

如何从 Python 中的目录中读取 n 个文件?

】如何从Python中的目录中读取n个文件?【英文标题】:HowtoreadnfilesfromdirectoryinPython?【发布时间】:2017-08-2313:18:27【问题描述】:我正在做一个PyQT5应用程序,它需要选择给定的文件夹,并列出其中的所有文件和目录。为了获取... 查看详情

如何从csv文件中读取python中的数字?

】如何从csv文件中读取python中的数字?【英文标题】:Howtoreadnumbersinpythonfromcsvfile?【发布时间】:2015-10-1019:07:42【问题描述】:我有一个csv文件,我必须计算一些列的平均值。我就是这样做的:file=csv.reader(open(\'tab.csv\',\'r\'))n=[]f... 查看详情