你好这是我遇到的问题。以下程序不允许我接收多个外平面数据,但允许根据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
答案 0 :(得分:1)
我不确定“在多个外线数据中”可能是什么,但错误信息非常清楚地解释了:
'C:/Users/zhenhui/Desktop/bye1.txt C:/Users/zhenhui/Desktop/hello1.txt'
不是有效的文件名。对我来说,这看起来像是两个文件名,你在它们之间加了一个空格。
当您打开文件时,Python和操作系统都不会尝试阅读您的想法。每个操作使用一个文件名。
答案 1 :(得分: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
module中与路径相关的功能。