【问题标题】:programme complies without printing results in python程序没有在python中打印结果就符合要求
【发布时间】:2018-05-18 20:19:50
【问题描述】:

每当我编译这个程序时,它都不会显示任何打印结果。有人可以告诉我这个有什么问题吗?其次,我想知道 genfrom txt 命令正在处理写入文件中的数据,或者它是否对文件名 check1.0 和 check1.5 进行了处理。

`path="folder"
datafiles=os.listdir(path)
prefix='check'  
dicdata={}
for df in datafiles:
    if re.match(prefix,df) and os.path.isfile(df):
        print ("df values are %s" % df)

        hmax=locale.atof(df[5:])   
        print ("hmax values are %s"% hmax)
        data=genfromtxt(df, delimiter=', ')
        print data
        dicdata[hmax]=data
        print dictData
       print len(data[0])

【问题讨论】:

  • 我们看不到 datafiles 提供的内容或您的 genfromtxt 函数...尝试在 for 循环之外打印任何内容
  • print(df) 在循环中,你会看到它只是文件名,而不是路径。
  • 包含函数 genfromtxt。

标签: python


【解决方案1】:

os.listdir 列出了目录的内容,但没有列出使用它们所需的路径。您需要先添加path。由于这会改变您的正则表达式正在寻找的内容,因此您可以分两步进行测试

path="folder"
datafiles=os.listdir(path)
prefix='check'  
dicdata={}
for df in datafiles:
    if re.match(prefix,df):
        df = os.path.join(path, df)
        if os.path.isfile(df):
            print ("df values are %s" % df)
            hmax=locale.atof(df[5:])   
            print ("hmax values are %s"% hmax)
            data=genfromtxt(df, delimiter=', ')
            print data
            dicdata[hmax]=data
            print dictData
            print len(data[0])

【讨论】:

  • 是的,在你提到函数的作用后我已经意识到了,再次测试,很明显:)
  • 我已经尝试了上面的代码,但它给出了 ValueError: could not convert string to float: r/check1.5
  • 我已经修复了值错误,但是当我打印数据时它给了我 [nan nan]。我想知道 genfromtxt 函数会显示将值分隔的结果,在名为 check1.0 的文件中,检查 1.5
【解决方案2】:

问题是 CWD(当前工作目录)可能与您列出的文件的位置不同:

#/usr/bin/python

import os
import re

path="/home/mortiz/Documents/projects"
datafiles=os.listdir(path)
prefix='check'
dicdata={}
for df in datafiles:
#    print df
    if re.match(prefix,df) and os.path.isfile(path+'/'+df):
 #           print ("df values are %s % df")
            print df

在条件 os.path.isfile() 中将文件的绝对路径提供给您的函数,然后将返回 True 并且代码将按您的预期执行。

os.path.isfile(path+'/'+df)

genfromtxt 是一个函数,而不是一个命令,而且你没有在你的问题中提供它,如果没有看到它的内容,就无法告诉你它在做什么。

【讨论】:

  • os.listdir 列出目录的所有内容。文件、子目录、链接、特殊文件。
  • 真@tdelaney。修正我的答案,因为我已经测试了部分脚本并且行为不是我所期望的。
  • 如何检查数据的维度?因为在不知道尺寸的情况下,我无法在实际代码中继续进行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 2022-12-17
相关资源
最近更新 更多