Вы можете создать / спроектировать пользовательский вид либо в nib
, либо programmatically
, а затем назначить его своему маркеру следующим образом.
let someView = YourCustomView()
someView.markerImageView.image = UIImage(named: "markerImage")
someView.userImageView.image = UIImage(named: "userImage")
let marker = GMSMarker()
marker.map = yourMapView
marker.position = somePositionCoordinate;
marker.iconView = someView
Как сказал ghostdog74, но на этот раз с заголовками:
fout=open("out.csv","a")
# first file:
for line in open("sh1.csv"):
fout.write(line)
# now the rest:
for num in range(2,201):
f = open("sh"+str(num)+".csv")
f.next() # skip the header
for line in f:
fout.write(line)
f.close() # not really needed
fout.close()
Простая в использовании функция:
def csv_merge(destination_path, *source_paths):
'''
Merges all csv files on source_paths to destination_path.
:param destination_path: Path of a single csv file, doesn't need to exist
:param source_paths: Paths of csv files to be merged into, needs to exist
:return: None
'''
with open(destination_path,"a") as dest_file:
with open(source_paths[0]) as src_file:
for src_line in src_file.read():
dest_file.write(src_line)
source_paths.pop(0)
for i in range(len(source_paths)):
with open(source_paths[i]) as src_file:
src_file.next()
for src_line in src_file:
dest_file.write(src_line)
Если объединенный CSV-файл будет использоваться в Python, просто используйте glob
, чтобы получить список файлов для передачи fileinput.input ()
с помощью аргумента files
, затем используйте модуль csv
, чтобы прочитать все это за один раз.
Вы можете импортировать csv, затем просмотреть все CSV-файлы, считывая их в список. Затем записать список обратно на диск.
import csv
rows = []
for f in (file1, file2, ...):
reader = csv.reader(open("f", "rb"))
for row in reader:
rows.append(row)
writer = csv.writer(open("some.csv", "wb"))
writer.writerows("\n".join(rows))
Вышеприведенный вариант не очень надежен, поскольку в нем нет обработки ошибок, и он не закрывает открытые файлы. Это должно работать независимо от того, есть ли в отдельных файлах одна или несколько строк CSV-данных или нет. Также я не запускал этот код, но он должен дать вам представление о том, что нужно делать.
fout=open("out.csv","a")
for num in range(1,201):
for line in open("sh"+str(num)+".csv"):
fout.write(line)
fout.close()
Это зависит от того, что вы подразумеваете под «слиянием» - у них одинаковые столбцы? У них есть заголовки? Например, если все они имеют одинаковые столбцы и не имеют заголовков, достаточно простой конкатенации (откройте целевой файл для записи, переберите источники, открывающие каждый для чтения, используйте shutil.copyfileobj из открытого файла. для чтения исходного кода в открытый для записи адресат, закройте источник, продолжайте цикл - используйте оператор with
, чтобы выполнить закрытие от вашего имени). Если у них одинаковые столбцы, но также и заголовки, вам понадобится строка чтения
для каждого исходного файла, кроме первого, после того, как вы откроете его для чтения перед копированием в место назначения, чтобы пропустить строку заголовков. .
Если в CSV-файлах не все одинаковые столбцы, вам нужно определить, в каком смысле вы их «объединяете» (например, SQL JOIN? Или «по горизонтали», если все они имеют одинаковое количество строк? и т. д. и т. д.) - нам сложно догадаться, что вы имеете в виду в этом случае.