Проблема с синтаксисом Python - TypeError: Обязательный аргумент 'name' (pos 1) не найден - PullRequest
1 голос
/ 20 июня 2019

Я пытаюсь разделить некоторые файлы по их содержимому, и мой код выглядит так и он продолжает показывать мне ошибку.

__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

У меня эта ошибка

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

Может кто-нибудь помочь, пожалуйста. Заранее спасибо.

1 Ответ

2 голосов
/ 20 июня 2019

Как видите здесь встроенная функция open не принимает файл в качестве аргумента ключевого слова, его нужно установить напрямую, ваша ошибка говорит о том, что обязательный аргумент "имя"не найден, это потому, что вам нужно установить имя ваших файлов напрямую, а не в качестве аргумента ключевого слова

т.е.: open(one_meter_File, 'w+')

Изменить в случае людей, читающих это: Как указано в комментариях, эта ошибка возникает только на python 2, потому что python 3 обрабатывает kwargs как обычные аргументы, если имя ключа верно.Так что проверьте вашу установку на python или исправьте ее в соответствии с потребностями Python 2, здесь - это документы Python 2 для open

...