Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在函数python 3中打开文件_Python 3.x_Errno - Fatal编程技术网

Python 3.x 在函数python 3中打开文件

Python 3.x 在函数python 3中打开文件,python-3.x,errno,Python 3.x,Errno,我是一个初学者,尝试将文件作为函数的一部分打开,其中文件名/路径是函数中的变量。我已经写了一个,但是在一个类似的函数中出现了一个错误。以下是功能代码: def read_board(board_file): """ (file path) -> list of str Return a board read from open file board_file. >>>read_board('C:\Python33\Doc\theboard1.

我是一个初学者,尝试将文件作为函数的一部分打开,其中文件名/路径是函数中的变量。我已经写了一个,但是在一个类似的函数中出现了一个错误。以下是功能代码:

def read_board(board_file):
    """ (file path) -> list of str

    Return a board read from open file board_file. 

    >>>read_board('C:\Python33\Doc\theboard1.txt') 
    """

    bo_file = open(board_file, 'r')
    lines = bo_file.readlines()

    return lines
我犯了这个错误

OSError:[Errno 22]无效参数:“C:\Python33\Doc\theboard1.txt”


路径是正确的(经过三次检查),我正在使用该示例来测试文件读取。

您需要使用双反斜杠转义反斜杠,以下操作将起作用:

read_board('C:\\Python33\\Doc\\theboard1.txt')

这是因为python将第二个
\
视为一个文本,而不是像在您的情况中那样将其用作其后字符的转义字符。

您需要使用双反斜杠转义反斜杠,以下操作将起作用:

read_board('C:\\Python33\\Doc\\theboard1.txt')
这是因为python将第二个
\
视为一个文本,而不是像在您的示例中那样将其用作后面字符的转义字符。

并且您可以使用::

九月

在像这样的文件之间

(“C:+os.sep+“用户”)

导入操作系统模块后,您可以使用:

九月

在像这样的文件之间

(“C:+os.sep+“用户”)


导入操作系统模块后

我通常会建议使用
os.path.join
,但由于Windows路径对大脑造成了严重损害,这不会有多大帮助。ª

一种正确的方法是使用不解释反斜杠的原始Python字符串:

open(r'c:\stupid\junk.txt')
或者假装DOS是一个噩梦,像上帝所希望的那样使用前斜杠:

open('c:/stupid/junk.txt')


读者练习:
os.path.join('c:','junk.dat')
返回什么?它的行为是否与“os.path.join”('dumby'、'junk.txt')不同?这是一个问题吗?

我通常会建议使用
os.path.join
,但由于Windows路径对大脑造成了严重损害,这不会有多大帮助。ª

一种正确的方法是使用不解释反斜杠的原始Python字符串:

open(r'c:\stupid\junk.txt')
或者假装DOS是一个噩梦,像上帝所希望的那样使用前斜杠:

open('c:/stupid/junk.txt')


读者练习:
os.path.join('c:','junk.dat')
返回什么?它的行为是否与“os.path.join”('dumby'、'junk.txt')不同?这是一个?

请发布正确(语法)的python代码。当前的格式无效。请清理代码和嵌套,如果这是您的意思,请发布正确(语法)的python代码。当前的格式无效。请清理代码和嵌套,如果这是您的意思,请现在开始工作。不确定另一个如何调用任何东西,但我正在进行中。@sharkysmachine:更明确地说,您路径中的
\t
已转换为制表符。尝试在反斜杠没有加倍的地方打印原始字符串(并且字符串文字没有标记为
r'raw string literal'
)。谢谢,现在可以使用了。不确定另一个如何调用任何东西,但我正在进行中。@sharkysmachine:更明确地说,您路径中的
\t
已转换为制表符。尝试打印反斜杠未加倍的原始字符串(以及字符串文字未标记为
r'raw string literal'
)。