1

Тема: write стовпчик .txt без [ ]

python 380, pip, wind64

Початківець python.
Не можу автоматизувати считування в матлабі .

Cтворив масив:
uu = np.empty([32,1])

Пишу масив:

MyFile_bus0 = open('C:\Rezults\ubus00.txt','w',encoding="cp1251")
MyFile_bus0.write(str(uu)) 
MyFile_bus0.close ()  

Отримав  ubus00.txt
[[12345]
[54321]
....
[12345]]

Скобки [[, [, ], ]]  не дають можливість считати ці дані в matlab.

Як вирішити.

2 Востаннє редагувалося koala (17.04.2020 10:39:49)

Re: write стовпчик .txt без [ ]

А який формат потрібен матлабу? Взагалі якось дивно, що ви масив створюєте з [32,1], а в файлі чомусь

[[12345]
[54321]
....
[12345]]

Підозрюю, що вам треба щось із ' '.join(uu) зробити, але що саме - не можу точно сказати, бо не розумію, які дані у вас на вході, які - на виході і що має бути на виході.
П.С. Скобки у степлерка, а у вас дужки.

3

Re: write стовпчик .txt без [ ]

k=0;
for x in range(218):
        b=days_file.readline()
        if x > 112 and x < 145 :
                c1=int(b[2])
                c2=int(b[4])
                c3=int(b[5])
                c4=int(b[6])
                c5=int(b[7])
                c=c1*10000+c2*1000+c3*100+c4*10+c5
                print(c)
                print(type(c))
                uu[k][0]=c 
                k=k+1

Вигляд с
<class 'int'>
70482
<class 'int'>
66335
<class 'int'>
66314

Бачимо, що с - int,
Мені треба записати файл .txt, стовпчик [32,1]  , без скобок [ , ]  для наступного считування пакетом matlab.
Усі значення чисел с однаковоі довжини - 5 цифр.

Ось так мені потрібно сформувати файл p 32-х чисел:

70482
66335
66314
.....

4 Востаннє редагувалося koala (17.04.2020 19:52:38)

Re: write стовпчик .txt без [ ]

ig0r-1954 написав:

Мені треба записати файл .txt, стовпчик [32,1]  , без скобок [ , ]  для наступного считування пакетом matlab.
Усі значення чисел с однаковоі довжини - 5 цифр.

Все одно незрозуміло. Що таке "стовпчик [32,1]"? 32 і 1 - це числа, які мають бути у стовпчику? Чи це номери стовпчика? Як це - два номери? А якщо це числа у стовпчику, то чому вони по 5 цифр? Що означають цифри 32 і 1?
Мені здається, що вам треба зробити

MyFile_bus0 = open('C:\Rezults\ubus00.txt','w',encoding="cp1251")
MyFile_bus0.write('\n'.join(str(x[0]) for x in uu)) 
MyFile_bus0.close () 

чи

MyFile_bus0 = open('C:\Rezults\ubus00.txt','w',encoding="cp1251")
for x in uu:
    MyFile_bus0.write(str(x)+'\n') 
MyFile_bus0.close () 

Але я зовсім у цьому не певен. А те, що ви економите символи на поясненні, не допомагає.

Принагідно

c = int(b[2]+b[4:8])

зробить те саме, що ваші c1-c5.

5

Re: write стовпчик .txt без [ ]

Чекайте. Вам треба прочитати з одного файлу, причому в дещо дивному форматі (5-значні числа розбиті на першу цифру і 4 решту), і записати в інший файл? І все?

MyFile_bus0 = open('C:\Rezults\ubus00.txt','w') #нащо вам cp1251 у файлі, де лише цифри? І взагалі нащо вам cp у 2020 році?
for x in range(218):
        b=days_file.readline()
        if 112 < x < 145 : #за це Python і люблять
            MyFile_bus0.write(b[2]+b[4:8]+'\n') #і за це теж
MyFile_bus0.close() #з with це було б красивіше, але не буду вас мучати

6 Востаннє редагувалося koala (17.04.2020 20:20:21)

Re: write стовпчик .txt без [ ]

О, нарешті я зрозумів. "Стовпчиком" ви називаєте numpy-масив розмірністю [32,1], правильно? Зазвичай стовпчик - це частина масиву, тут, я так розумію, uu[:,0].