在这里,我们将给大家分享关于基于区域设置的pythoncsv列表分隔符的知识,让您更了解pythoncsv分隔符的本质,同时也会涉及到如何更有效地ios–基于区域设置的设备的日期格式、java–如何在
在这里,我们将给大家分享关于基于区域设置的python csv列表分隔符的知识,让您更了解python csv 分隔符的本质,同时也会涉及到如何更有效地ios – 基于区域设置的设备的日期格式、java – 如何在将hibernate用作ORM时执行基于区域设置的排序、PHP如何基于区域设置的字符串比较、Python - CSV 文件中的列包含多个分隔符和结果的内容。
本文目录一览:- 基于区域设置的python csv列表分隔符(python csv 分隔符)
- ios – 基于区域设置的设备的日期格式
- java – 如何在将hibernate用作ORM时执行基于区域设置的排序
- PHP如何基于区域设置的字符串比较
- Python - CSV 文件中的列包含多个分隔符和结果
基于区域设置的python csv列表分隔符(python csv 分隔符)
如何在使用Python的用户机器中检测列表分隔符?
需要在用户计算机上创建CSV文件,并且必须自动检测列表分隔符(以便excel可以读取CSV文件)。
我发现Excel从“区域选项->数字->列表分隔符”中采用CSV元素分隔符。Python中的语言环境模块用于检测文化设置,但它(locale.localeconv)不包含列表分隔符。使用方言=“
excel”打开CSV编写器没有帮助。任何想法如何获得正确的分隔符?
编辑
以下代码似乎有效(但不能接受任何投票,因为该解决方案不是我的)
import localelanglocale = locale.getdefaultlocale()[0]locale.setlocale(locale.LC_ALL, langlocale)dp = locale.localeconv()[''decimal_point'']delimiter = '',''if dp == '','': delimiter = '';''
答案1
小编典典用xlwt编写一个XLS文件。
采取2: 使用区域设置模块和一些启发式方法:
>>> import locale>>> locale.setlocale(locale.LC_ALL, '''') # set to user''s locale, not "C"''English_Australia.1252''>>> dec_pt_chr = locale.localeconv()[''decimal_point'']>>> if dec_pt_chr == ",":... list_delimiter = ";"... else:... list_delimiter = ","...>>> print repr(dec_pt_chr), repr(list_delimiter)''.'' '',''>>> locale.setlocale(locale.LC_ALL, ''French_France.1252'')''French_France.1252''>>> dec_pt_chr = locale.localeconv()[''decimal_point'']>>> if dec_pt_chr == ",":... list_delimiter = ";"... else:... list_delimiter = ","...>>> print repr(dec_pt_chr), repr(list_delimiter)'','' '';''>>>
ios – 基于区域设置的设备的日期格式
有没有办法从当前日期的设备本地设置中读取日期格式?
>日期格式是“dd / MM / yyyy”还是“MM / dd / yyyy”.
>时间格式为“h:mm a”或其他内容.
> AM / PM文本是“AM”或“PM”.
我买不起任何第三方图书馆,请告诉我这是否可以使用任何苹果课程来完成.
编辑:
我不想设置任何格式,我只想根据语言环境从设备中检索它.
比如说,在我的国家,日期格式是dd / MM / yyyy,在MM / dd / yyyy这个词的某些部分我希望得到这种格式.
任何答案都表示赞赏.
解决方法
您可以使用NSDateFormatter,将样式设置为所需的格式
NSDateFormatterShortStyle NSDateFormatterMediumStyle NSDateFormatterLongStyle
了解更多请看看documentation
以下是适合您的代码段.
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatter setDateStyle:NSDateFormatterShortStyle]; Nsstring *dateformat = [dateFormatter dateFormat]; //M/d/yy Nsstring *amtext = [dateFormatter AMSymbol]; //AM Nsstring *pmtext = [dateFormatter PMSymbol]; //PM dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; Nsstring *timeformat = [dateFormatter dateFormat]; //h:mm a
它将使用用户的语言环境格式.希望能解决你的问题.
java – 如何在将hibernate用作ORM时执行基于区域设置的排序
解决方法
But Now that I want to support multiple locales,how should I pass the locale information to the DB via hibernate layer.
老实说,我不确定我到底知道你想要做什么但是如果你想通过查询中的某些东西来订购,那么显然应该在数据库级别存在某些东西.也许您可以通过示例详细说明或说明您想要实现的目标?
以防万一,这里有一些资源可能会给你一些启发:
>如何使用Collection of Elements来映射[language_code]的地图 – > [描述]
>如何使用UserType映射Internationalized data in Hibernate
> Implementing I18N relationships with JPA
PHP如何基于区域设置的字符串比较
php小编柚子为您详细介绍php如何基于区域设置的字符串比较。在跨语言项目中,字符串比较是一项关键任务。通过正确设置区域设置,可以确保字符串比较的准确性和一致性。本文将为您解释如何在php中使用区域设置进行字符串比较,以及如何处理不同语言环境下的字符串比较问题。让我们一起来深入了解吧!
PHP 中基于区域设置的字符串比较
在 php 中,字符串比较通常使用 strcmp 函数或 == 运算符。然而,默认情况下,这些比较是大小写敏感的,并且不考虑区域设置。在某些情况下,这可能会导致意外结果,例如比较来自不同区域设置的字符串时。
区域设置敏感比较
立即学习“PHP免费学习笔记(深入)”;
为了解决这个问题,PHP提供了 strcoll 函数,它允许基于区域设置进行字符串比较。strcoll 函数在字符串之间返回一个整数:
- 如果第一个字符串小于第二个字符串,则返回一个负数。
- 如果第一个字符串等于第二个字符串,则返回 0。
- 如果第一个字符串大于第二个字符串,则返回一个正数。
strcoll 函数需要一个区域设置参数,它指定要使用的特定区域设置。区域设置是一个标识符,它指定语言、国家/地区和字符集的组合。例如,英语(美国)的区域设置是 "en_US.UTF-8"。
以下示例演示了如何使用 strcoll 函数进行区域设置敏感比较:
$string1 = "café"; $string2 = "cafe"; $result = strcoll($string1, $string2); if ($result == 0) { echo "Strings are equal based on regional settings."; } else { echo "Strings are not equal based on regional settings."; }
在上面的示例中,strcoll 函数将第一个字符串与第二个字符串进行比较,使用 "en_US.UTF-8" 区域设置。由于在英语(美国)区域设置中,带有重音符号的字母 "é" 被视为与没有重音符号的字母 "e" 相同,因此该函数将返回 0,表明两个字符串相等。
不区分大小写的区域设置敏感比较
还可以使用 strcasecmp 函数执行不区分大小写的区域设置敏感比较。strcasecmp 函数类似于 strcoll 函数,但它忽略了字符串中的大小写。
以下示例演示了如何使用 strcasecmp 函数执行不区分大小写的区域设置敏感比较:
$string1 = "café"; $string2 = "CAFE"; $result = strcasecmp($string1, $string2); if ($result == 0) { echo "Strings are equal based on regional settings, ignoring case."; } else { echo "Strings are not equal based on regional settings, ignoring case."; }
在上面的示例中,strcasecmp 函数将第一个字符串与第二个字符串进行比较,使用 "en_US.UTF-8" 区域设置,忽略大小写。因此,该函数将返回 0,表明两个字符串相等。
选择区域设置
为 strcoll 和 strcasecmp 函数选择适当的区域设置非常重要。可以从 setlocale 函数获取当前区域设置,也可以使用 setlocale 函数显式设置区域设置。
以下示例演示了如何设置区域设置:
setlocale(LC_COLLATE, "en_US.UTF-8");
在上面的示例中,setlocale 函数将区域设置设置为英语(美国),UTF-8 编码。
最佳实践
- 始终使用区域设置敏感的比较进行区域设置相关的字符串比较。
- 使用合适的区域设置,以正确考虑特定语言和国家/地区的比较规则。
- 在整个应用程序中一致地使用区域设置。
以上就是PHP如何基于区域设置的字符串比较的详细内容,更多请关注php中文网其它相关文章!
Python - CSV 文件中的列包含多个分隔符和结果
如何解决Python - CSV 文件中的列包含多个分隔符和结果?
我有一个相当大的 CSV 文件,其中包含多列(无分隔符)和一列包含使用三个分隔符的结果。
主要分隔符是“;”,用于分隔结果的天数。
第二个分隔符是“:”,它分隔每天的结果(我只使用了 6 个结果中的 2 个)。
第三个分隔符是“/”,用于分隔结果日期和结果的日历值。
我想尽可能避免循环遍历“X&Y”列,因为该列本身包含许多分隔结果,并且有很多行。
Col1 | Col2 | X&Y |
---|---|---|
A | B | 20200331/1D::::1:2;20200401/2D::::3:4;20200402/3D::::5:6 |
AA | BB | 20210330/1Y::::11:22;20220330/2Y::::33:44;20230330/3Y::::55:66 |
我想看:
Col1 | Col2 | 日期 | 日历值 | X | Y |
---|---|---|---|---|---|
A | B | 20200331 | 一维 | 1 | 2 |
A | B | 20200401 | 二维 | 3 | 4 |
A | B | 2020040 | 3D | 5 | 6 |
AA | BB | 20210330 | 1Y | 11 | 22 |
AA | BB | 20220330 | 2Y | 33 | 44 |
AA | BB | 20220330 | 3 年 | 55 | 66 |
import pandas as pd
df = pd.DataFrame({''Col1'':[''A'',''AA''],''Col2'':[''B'',''BB''],''Col3'':[''20200331/1D::::1:2;20200401/2D::::3:4;20200402/3D::::5:6'',''20210330/1Y::::11:22;20220330/2Y::::33:44;20230330/3Y::::55:66'']})
解决方法
这是您可以尝试的解决方案,基于分隔符 (;)
后跟 explode
进行拆分以转换为行。接着是 extract
& 最后 concat
帧以获得结果帧。
import pandas as pd
import re
df = pd.DataFrame({''Col1'': [''A'',''AA''],''Col2'': [''B'',''BB''],''Col3'': [''20200331/1D::::1:2;20200401/2D::::3:4;20200402/3D::::5:6'',''20210330/1Y::::11:22;20220330/2Y::::33:44;20230330/3Y::::55:66'']})
df[''Col3''] = df[''Col3''].str.split(";")
# extract features from the string
extract_ = re.compile(r"(?P<Date>\w+)/(?P<CalendarValue>\w+):+(?P<X>.+):(?P<Y>.+)")
pd.concat([
df.drop(columns=''Col3''),df[''Col3''].explode().str.extract(extract_,expand=True)
],axis=1)
Out[*]:
Col1 Col2 Date CalendarValue X Y
0 A B 20200331 1D 1 2
0 A B 20200401 2D 3 4
0 A B 20200402 3D 5 6
1 AA BB 20210330 1Y 11 22
1 AA BB 20220330 2Y 33 44
1 AA BB 20230330 3Y 55 66
Regex Demo
今天关于基于区域设置的python csv列表分隔符和python csv 分隔符的分享就到这里,希望大家有所收获,若想了解更多关于ios – 基于区域设置的设备的日期格式、java – 如何在将hibernate用作ORM时执行基于区域设置的排序、PHP如何基于区域设置的字符串比较、Python - CSV 文件中的列包含多个分隔符和结果等相关知识,可以在本站进行查询。
本文标签: