Вам нужно сначала создать URI, например:
String urlStr = "http://www.example.com/CEREC® Materials & Accessories/IPS Empress® CAD.pdf"
URL url= new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
Затем преобразовать эту строку Uri в ASCII:
urlStr=uri.toASCIIString();
Теперь ваша строка url полностью закодирована, простое кодирование url, а затем мы преобразовали его в ASCII String, чтобы убедиться, что в строке нет символа вне US-ASCII. Это как раз то, как делают браузеры.
Ниже приведены некоторые минимальные полные примеры того, как читать CSV-файлы и как писать файлы CSV с помощью Python.
Pure Python
# -*- coding: utf-8 -*-
import csv
import sys
# Define data
data = [(1, "A towel,", 1.0),
(42, " it says, ", 2.0),
(1337, "is about the most ", -1),
(0, "massively useful thing ", 123),
(-2, "an interstellar hitchhiker can have.", 3)]
# Write CSV file
kwargs = {'newline': ''}
mode = 'w'
if sys.version_info < (3, 0):
kwargs.pop('newline', None)
mode = 'wb'
with open('test.csv', mode, **kwargs) as fp:
writer = csv.writer(fp, delimiter=str(','))
# writer.writerow(["your", "header", "foo"]) # write header
writer.writerows(data)
# Read CSV file
kwargs = {'newline': ''}
mode = 'r'
if sys.version_info < (3, 0):
kwargs.pop('newline', None)
mode = 'rb'
with open('test.csv', mode, **kwargs) as fp:
reader = csv.reader(fp, delimiter=',', quotechar='"')
# next(reader, None) # skip the headers
data_read = [row for row in reader]
print(data_read)
После этого содержимое data_read
является
[['1', 'A towel,', '1.0'],
['42', ' it says, ', '2.0'],
['1337', 'is about the most ', '-1'],
['0', 'massively useful thing ', '123'],
['-2', 'an interstellar hitchhiker can have.', '3']]
Если вы хотите написать Unicode, у вас есть для установки Посмотрите мой пакет утилиты Для получения дополнительной информации см. Если вы не слышали о Seaborn , я рекомендую посмотреть на нем. Чтение CSV-файлов поддерживается рядом других библиотек, например: После прочтения файла CSV в списке кортежей / диктов или в кадре данных Pandas он просто работает с такими типами данные. Ничего особенного в CSV. Для вашего приложения может быть важно следующее: См. также: Сравнение форматов сериализации данных Если вы скорее ищете способ создания файлов конфигурации, вы можете прочитать мою короткую статью Файлы конфигурации в Python unicodecsv
. Не открывайте файл с помощью codecs.open
, а просто с помощью open
. mpu
mpu
для супер простого и легко запоминающегося: import mpu.io
data = mpu.io.read('example.csv', delimiter=',', quotechar='"', skiprows=None)
mpu.io.write('example.csv', data)
Pandas
import pandas as pd
# Read the CSV into a pandas data frame (df)
# With a df you can do many things
# most important: visualize data with Seaborn
df = pd.read_csv('myfile.csv', sep=',')
print(df)
# Or export it in many ways, e.g. a list of tuples
tuples = [tuple(x) for x in df.values]
# or export it as a list of dicts
dicts = df.to_dict().values()
read_csv
docs . Обратите внимание, что pandas автоматически появляется, если есть строка заголовка, но вы также можете установить ее вручную. Другое
Создан файл CSV
1,"A towel,",1.0
42," it says, ",2.0
1337,is about the most ,-1
0,massively useful thing ,123
-2,an interstellar hitchhiker can have.,3
Общие окончания файлов
.csv
Работа с данными
Альтернативы
Сначала вам нужно импортировать csv
Например, например:
import csv
with open('eggs.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
import csv
with open(fileLocation+'example.csv',newline='') as File: #the csv file is stored in a File object
reader=csv.reader(File) #csv.reader is used to read a file
for row in reader:
print(row)
csv
для чтения? – icedwater 11 January 2017 в 08:59csv
для записи. Я предпочел быcsv
илиpandas
для обоих, аcsv
надpandas
, потому что он, скорее всего, уже там. – icedwater 11 January 2017 в 09:22csv
решение (которое теперь также согласовано в структуре с моими другими ответами на другие форматы файлов, такие как YAML и JSON) – Martin Thoma 10 February 2017 в 17:17