Python 语法问题 - TypeError: 未找到必需的参数“名称”(pos 1)

Sah*_*pal 3 python io syntax python-2.x

我试图按内容分隔一些文件,我的代码如下所示,并且不断向我显示错误。

__author__ = 'Sahil Nagpal'

from pyspark import SparkContext,SparkConf
from pyspark.sql import SparkSession


spark = SparkSession.builder.appName("GEOTRELLIS").getOrCreate()
sparkcont = SparkContext.getOrCreate(SparkConf().setAppName("GEOTRELLIS"))
logs = sparkcont.setLogLevel("ERROR")



imageFile = "/mnt/imagefile/IMGFileCopy.txt"
one_meter_File = "/mnt/imagefile/one_meter/one_meter_file.txt"
_13_File = "/mnt/imagefile/13_meter/_13_File.txt"
ned19_File = "/mnt/imagefile/ned19/ned19_File.txt"

#iterate over the file
try:
    with open(file=imageFile,mode="r+") as file, open(file=one_meter_File,mode='w+') as one_meter_File,open(file=_13_File,mode='w+') as _13_File,open(file=ned19_File,mode='w+') as ned19_File:

        for data in file.readlines():
            if("one_meter" in data):
                #writing the one_meter file
                one_meter_File.write(data)
            elif("_13" in data):
                # writing the _13 file
                _13_File.write(data)
            elif("ned19" in data):
                # writing the ned19 file
                ned19_File.write(data)


        one_meter_File.close()
        _13_File.close()
        ned19_File.close()
        file.close()
    print("File Write Done")

except FileNotFoundError:
    print("File Not Found")

#spark-submit --master local[*] project.py
Run Code Online (Sandbox Code Playgroud)

我遇到这个错误

with open(file=imageFile,mode="r+") as file, open(file=one_meter_File,mode='w+') as one_meter_File,open(file=_13_File,mode='w+') as _13_File,open(file=ned19_File,mode='w+') as ned19_File:
TypeError: Required argument 'name' (pos 1) not found
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?提前致谢。

Nen*_*nri 5

正如你在这里看到的, 内置函数open不将文件作为关键字参数,它需要直接设置,你的错误表明找不到所需的参数“name”,这是因为你需要设置直接文件名而不是作为关键字参数

IE :open(one_meter_File, 'w+')

如果有人阅读此内容,请进行编辑: 正如评论中所述,此错误仅发生在 python 2 上,因为如果键名称正确,python 3 会将 kwargs 作为正常参数处理。因此,请检查您的 python 安装,或者将其更正为 python 2 的需要,这里是 python 2 文档open