TypeError при записи словаря в файл csv [duplicate]

Это бит-бит, чтобы объяснить статическое ключевое слово для всех новичков. Вы узнаете это, когда будете работать больше с Классами и Объектами.

| * | Static: Статические элементы могут быть вызваны с именем класса. Если вы наблюдаете в кодах, некоторые функции вызываются непосредственно с именами классов, такими как

NamCls.NamFnc();

System.out.println();

. Это потому, что NamFnc и println будут объявленный с использованием ключевого слова static перед ними.

| * | Non Static: Нестатические элементы могут быть вызваны с помощью переменной класса. Если ее не статично, вам нужна переменная класса, поместите точку после переменной класса и затем вызовите функцию.

NamCls NamObjVar = new NamCls();
NamObjVar.NamFnc();

Ниже код объясняет вам аккуратно

| * | Статическая и нестатическая функция в классе:

public class NamCls
{
    public static void main(String[] args)
    {
        PlsPrnFnc("Tst Txt");

        NamCls NamObjVar = new NamCls();
        NamObjVar.PrnFnc("Tst Txt");
    }

    static void PlsPrnFnc(String SrgPsgVal)
    {
        System.out.println(SrgPsgVal);
    }

    void PrnFnc(String SrgPsgVal)
    {
        System.out.println(SrgPsgVal);
    }
}

| * | Статический и нестатический класс внутри класса:

public class NamCls
{
    public static void main(String[] args)
    {
        NamTicCls NamTicVaj = new NamTicCls();
        NamTicVaj.PrnFnc("Tst Txt");

        NamCls NamObjVar = new NamCls();
        NamNicCls NamNicVar = NamObjVar.new NamNicCls();
        NamNicVar.PrnFnc("Tst Txt");
    }

    static class NamTicCls
    {
        void PrnFnc(String SrgPsgVal)
        {
            System.out.println(SrgPsgVal);
        }
    }

    class NamNicCls
    {
        void PrnFnc(String SrgPsgVal)
        {
            System.out.println(SrgPsgVal);
        }
    }
}
33
задан Victor 26 June 2009 в 00:27
поделиться

5 ответов

Поскольку вы сделали from os import *, вы (accidenally) используете os.open, который действительно требует целочисленного флага вместо текстового «r» или «w». Выньте эту строку, и вы преодолеете эту ошибку.

56
ответ дан Mark Rushakoff 23 August 2018 в 20:46
поделиться

Предоставление этих параметров разрешило мою проблему:

with open('tomorrow.txt', mode='w', encoding='UTF-8', errors='strict', buffering=1) as file:
    file.write(result)
1
ответ дан gary 23 August 2018 в 20:46
поделиться

Не делайте import * from wherever без уважительной причины (и их немного).

Ваш код подбирает функцию os.open () вместо встроенного open ( ). Если вы действительно хотите использовать os.open (), выполните import os, затем вызовите os.open(....). Независимо от того, что вы хотите вызвать, прочитайте документацию о том, какие аргументы она требует.

11
ответ дан John Machin 23 August 2018 в 20:46
поделиться

Из http://www.tutorialspoint.com/python/os_open.htm вы также можете сохранить свой импорт и использовать

file = os.open ("foo. txt ", режим)

, и режим может быть:

os.O_RDONLY: open for reading only
os.O_WRONLY: open for writing only
os.O_RDWR : open for reading and writing
os.O_NONBLOCK: do not block on open
os.O_APPEND: append on each write
os.O_CREAT: create file if it does not exist
os.O_TRUNC: truncate size to 0
os.O_EXCL: error if create and file exists
os.O_SHLOCK: atomically obtain a shared lock
os.O_EXLOCK: atomically obtain an exclusive lock
os.O_DIRECT: eliminate or reduce cache effects
os.O_FSYNC : synchronous writes
os.O_NOFOLLOW: do not follow symlinks
0
ответ дан Omar Jaafor 23 August 2018 в 20:46
поделиться

Также следует отметить, что начиная с Python 2.6 встроенная функция open () теперь является псевдонимом для функции io.open (). Было даже рассмотрено удаление встроенного open () в Python 3 и требование использования io.open, чтобы избежать случайных конфликтов пространства имен, возникающих в результате таких вещей, как «from blah import *». В Python 2.6+ вы можете написать (и также можете считать этот стиль хорошей практикой):

import io
filehandle = io.open(sys.argv[1], 'r')
10
ответ дан Wheat 23 August 2018 в 20:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: