OSError [Errno 22]在Python中使用open()时参数无效

时间:2014-08-30 15:45:44

标签: python

def choose_option(self):
        if self.option_picker.currentRow() == 0:
            description = open(":/description_files/program_description.txt","r")
            self.information_shower.setText(description.read())
        elif self.option_picker.currentRow() == 1:
            requirements = open(":/description_files/requirements_for_client_data.txt", "r")
            self.information_shower.setText(requirements.read())
        elif self.option_picker.currentRow() == 2:
            menus = open(":/description_files/menus.txt", "r")
            self.information_shower.setText(menus.read())

我正在使用资源文件,当我在open函数中使用它作为参数时会出现问题,但是当我使用它来加载图片和图标时,一切都很好。

15 个答案:

答案 0 :(得分:14)

这不是有效的文件路径。您必须使用完整路径

open(r"C:\description_files\program_description.txt","r")

或相对路径

open("program_description.txt","r")

答案 1 :(得分:4)

你应该再添加一个" /"在最后" /"路径,即: open('C:\Python34\book.csv')open('C:\Python34\\book.csv')。例如:

import csv
with open('C:\Python34\\book.csv', newline='') as csvfile:
    spamreader = csv.reader(csvfile, delimiter='', quotechar='|')
    for row in spamreader:
        print(row)

答案 2 :(得分:4)

在路径开头添加“ r”:

path = r"D:\Folder\file.txt"

对我有用。

答案 3 :(得分:3)

就我而言,我使用了无效的字符串前缀。

错误:

path = f"D:\Folder\file.txt"

右:

path = r"D:\Folder\file.txt"

答案 4 :(得分:2)

我在使用open(file_path)时也遇到了此错误。我造成此错误的原因是我的file_path具有一个特殊字符,例如"?""<"

答案 5 :(得分:1)

只需用“/”代替文件路径:

   open("description_files/program_description.txt","r")

答案 6 :(得分:1)

当尝试打印绝对庞大的字典时,我收到了相同的错误。当我尝试仅打印字典的键时,一切都很好!

答案 7 :(得分:1)

我有同样的问题 发生这种情况是因为文件不能包含特殊字符,例如“:”,“?”,““>”等。 您应该使用replace()函数替换这些文件:

filename = filename.replace("special character to replace", "-")

答案 8 :(得分:1)

就我而言,该错误是由于缺少对文件夹路径的权限所致。我输入并保存了解决问题的凭据。

答案 9 :(得分:0)

*

答案 10 :(得分:0)

在我的情况下,此问题存在,因为我尚未设置驱动器“ C:\”的权限,并且当我将路径更改为“ F:\”之类的其他驱动器时,问题得以解决。

答案 11 :(得分:0)

import pandas as pd
df = pd.read_excel ('C:/Users/yourlogin/new folder/file.xlsx')
print (df)

答案 12 :(得分:0)

我收到此错误,因为旧服务器实例正在运行并且正在使用日志文件,因此新实例无法写入日志文件。发布删除日志文件后,此问题已解决。

答案 13 :(得分:0)

只使用单引号并在前面使用 'r' 原始字符串和单个 '/'

例如

0x00402000

答案 14 :(得分:-1)

在Windows-Pycharm中:如果文件位置|路径包含任何类似\t的字符串,那么需要使用\

等其他\\t来转义该字符串