Python程序无法处理多个文本文件

在Python程序中遇到一个问题,程序无法处理多个文本文件。当尝试使用tkFileDialog.askopenfilename函数打开多个文本文件时,程序可以成功处理多个平面内文本文件,但是当处理多个平面外文本文件时,程序会出现错误。
在这里插入图片描述

以下是在处理多个平面外文本文件时产生的错误信息:

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'

2. 解决方案

根据错误信息,问题似乎是由于程序无法正确处理多个平面外文本文件的文件路径。在程序中,打开平面外文本文件的代码如下:

InputfilesListOoplane = file_path_Ooplane#master.tk.splitlist(file_path_Ooplane)

在这种情况下,file_path_Ooplane是一个包含多个平面外文本文件路径的字符串,而master.tk.splitlist函数并没有被正确调用来将这个字符串分割成一个包含多个文件路径的列表。因此,当程序尝试使用open函数打开InputfilesListOoplane时,就会出现错误。

为了解决这个问题,需要将file_path_Ooplane分割成一个包含多个文件路径的列表,然后使用open函数逐个打开这些文件。可以在call_Controller函数中添加以下代码来实现这一点:

InputfilesListOoplane = master.tk.splitlist(file_path_Ooplane)
with open(InputfilesListOoplane[0]) as f1:
    f1.readline()

这样,程序就可以正确地处理多个平面外文本文件了。

以下是在Python中处理多个文本文件的完整代码示例:

import Tkinter as Tk
import os

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[0]) 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 =  master.tk.splitlist(file_path_Ooplane)


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

    print "Done " + Name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值