0

您好,这是我遇到的问题。以下程序不允许我接收多个平面外数据,但它允许根据call_Controller. 程序有问题吗?

you can try by creating this 4 text file in a folder.
run the program and press Clt to take in both hello.txt and bye.txt
follow by hello1.txt and bye1.txt and you will know the error 
somebody please help me with this problem..
hello.txt | hello1.txt
bye.txt   | bye1.txt

错误信息:

Traceback (most recent call last):
File "C:\ProjectMAPG\TRYPYTHON\src\OldPythonTry.py", line 100, in <module>
Name = call_Controller(file_path_IP, InputfilesListOoplane)
File "C:\ProjectMAPG\TRYPYTHON\src\OldPythonTry.py", line 67, in call_Controller
with open(InputfilesListOoplane) as f1:
IOError: [Errno 22] invalid mode ('r') or filename: u'C:/Users/zhenhui/Desktop/bye1.txt C:/Users/zhenhui/Desktop/hello1.txt'

提取文件名的函数:

def extractFilename(FileNameOnly):
    stripText = string.split(FileNameOnly, " ")
    FileName = stripText[0]   
    return (FileName)
    pass

我认为问题就在这里。由于外机不允许我接收多个文件夹:

def call_Controller(file_path_Inplane, InputfilesListOoplane):
    FileNameOnlyIP = splitext(basename(file_path_Inplane))[0]
    Name = extractFilename(FileNameOnlyIP)
    #Extract raw inplane
    with open(file_path_Inplane) as f:
        f.readline()      
    #Extract raw outplane
    with open(InputfilesListOoplane) as f1:
        f1.readline()
    return Name

程序开始:

if __name__ == '__main__': #start of program
    win = Tk.Tk()  #Open up connection and declare button and label  
    master=win
    initial_dir = "C:\VSM"

    #Create Directory if its not there
    try:
            if not os.path.exists(newDirRH[0]):os.makedirs(newDirRH)
    except: pass

    #Open to select multiple files for files
    file_path_Inplane= tkFileDialog.askopenfilename(initialdir=initial_dir, title="Select VSM Files", multiple =1)
    if file_path_Inplane != "": pass
    else:
        print "You didn't open anything!"
    InputfilesListInplane =  win.tk.splitlist(file_path_Inplane)

    #Open to select multiple files for outplane 
    file_path_Ooplane = tkFileDialog.askopenfilename(initialdir=initial_dir, title="Select Out of Plane Files", multiple = 1)
    if file_path_Ooplane != "": 
        pass
    else:
        print "You didn't open anything!"
    InputfilesListOoplane =  file_path_Ooplane#master.tk.splitlist(file_path_Ooplane)


    for file_path_IP in InputfilesListInplane:
        Name = call_Controller(file_path_IP, InputfilesListOoplane)

    print "Done " + Name
4

2 回答 2

1

我不确定“在多个外平面数据中”可能是什么,但错误消息解释得很清楚:

'C:/Users/zhenhui/Desktop/bye1.txt C:/Users/zhenhui/Desktop/hello1.txt'

不是有效的文件名。对我来说,这看起来像是两个文件名,您在它们之间附加了一个空格。

当您打开文件时,Python 和操作系统都不会尝试读取您的想法。每个操作使用一个文件名。

于 2013-10-29T08:41:32.280 回答
0

问题在这里:

IOError: [Errno 22] invalid mode ('r') or filename: u'C:/Users/zhenhui/Desktop/bye1.txt C:/Users/zhenhui/Desktop/hello1.txt'

检查正确的交货地点您的路径。下一个潜在问题在这里initial_dir = "C:\VSM"。必须initial_dir = "C:\\VSM"initial_dir = "C:/VSM"。此外使用os.path 模块中的路径相关功能。

于 2013-10-29T09:18:33.137 回答